VirtualBox

Changeset 501 in kBuild


Ignore:
Timestamp:
Sep 15, 2006 2:30:32 AM (18 years ago)
Author:
bird
Message:

Load make-3.81/ into vendor/gnumake/current.

Location:
vendor/gnumake/current
Files:
41 added
26 deleted
204 edited

Legend:

Unmodified
Added
Removed
  • vendor/gnumake/current/AUTHORS

    r280 r501  
    77Development starting with GNU make 3.76 by:
    88    Paul D. Smith <[email protected]>
     9
    910    Additional development starting with GNU make 3.81 by:
    1011        Boris Kolpackov <[email protected]>
     
    6364With suggestions/comments/bug reports from a cast of ... well ...
    6465hundreds, anyway :)
     66
     67-------------------------------------------------------------------------------
     68Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
     69Free Software Foundation, Inc.
     70This file is part of GNU Make.
     71
     72GNU Make is free software; you can redistribute it and/or modify it under the
     73terms of the GNU General Public License as published by the Free Software
     74Foundation; either version 2, or (at your option) any later version.
     75
     76GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     77WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     78A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     79
     80You should have received a copy of the GNU General Public License along with
     81GNU Make; see the file COPYING.  If not, write to the Free Software
     82Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  • vendor/gnumake/current/ChangeLog

    r280 r501  
     12006-04-01  Paul D. Smith  <[email protected]>
     2
     3        Version 3.81 released.
     4
     5        * NEWS: Updated for 3.81.
     6
     7        * README.cvs: Mention that vpath builds are not supported out of
     8        CVS.  Fixes Savannah bug #16236.
     9        Remove update of make.texi from the list of things to do; we use
     10        version.texi now.
     11
     122006-03-26  Paul D. Smith  <[email protected]>
     13
     14        * doc/make.texi: Clean up licensing.  Use @copying and version.texi
     15        support from automake, as described in the Texinfo manual.
     16
     172006-03-25  Eli Zaretskii  <[email protected]>
     18
     19        * implicit.c (pattern_search) [HAVE_DOS_PATHS]: Don't compare b
     20        with lastslash, since the latter points to filename, not to
     21        target.
     22        * job.c (construct_command_argv_internal) [HAVE_DOS_PATHS]:
     23        Declare and define sh_chars_sh[].
     24
     252006-03-23  Paul D. Smith  <[email protected]>
     26
     27        * configure.in: Look for build.sh.in in $srcdir so it will be
     28        built for remote configurations as well.
     29
     30        * Makefile.am: Make sure to clean up build.sh during distclean.
     31        Fixes Savannah bug #16166.
     32
     33        * misc.c (log_access): Takes a const char *.
     34        * function.c (fold_newlines): Takes an unsigned int *.
     35        Both fixes for Savannah bug #16170.
     36
     372006-03-22  Boris Kolpackov  <[email protected]>
     38
     39        * implicit.c (pattern_search): Call set_file_variables only
     40        if we have prerequisites that need second expansion. Fixes
     41        Savannah bug #16140.
     42
     432006-03-19  Paul D. Smith  <[email protected]>
     44
     45        * remake.c (update_file): Add alloca(0) to clean up alloca'd
     46        memory on hosts that don't support it directly.
     47
     48        * README.cvs: Add information on steps for making a release (to
     49        make sure I don't forget any).
     50
     51        * main.c (clean_jobserver): Move jobserver cleanup code into a new
     52        function.
     53        (die): Cleanup code was removed from here; call the new function.
     54        (main): If we are re-execing, clean up the jobserver first so we
     55        don't leak file descriptors.
     56        Fix bug reported by Craig Fithian <[email protected]>.
     57
     582006-03-17  Paul D. Smith  <[email protected]>
     59
     60        * maintMakefile (do-po-update): Rewrite this rule to clean up and
     61        allow multiple concurrent runs.
     62        Patch from Joseph Myers <[email protected]>
     63
     642006-03-17  Boris Kolpackov  <[email protected]>
     65
     66        * dep.h (struct dep): Add the stem field.
     67        * misc.c (alloc_dep, free_dep): New functions.
     68        (copy_dep_chain): Copy stem.
     69        (free_dep_chain): Use free_dep.
     70        * read.c (record_files): Store stem in the dependency line.
     71        * file.c (expand_deps): Use stem stored in the dependency line. Use
     72        free_dep_chain instead of free_ns_chain.
     73        * implicit.c (pattern_search): Use alloc_dep and free_dep.
     74        * read.c (read_all_makefiles, eval_makefile, eval): Ditto.
     75        * main.c (main, handle_non_switch_argument): Ditto.
     76        * remake.c (check_dep): Ditto.
     77        * rule.c (convert_suffix_rule, freerule): Ditto.
     78
     792006-03-14  Paul D. Smith  <[email protected]>
     80
     81        * expand.c (variable_append): Instead of appending everything then
     82        expanding the result, we expand (or not, if it's simple) each part
     83        as we add it.
     84        (allocated_variable_append): Don't expand the final result.
     85        Fixes Savannah bug #15913.
     86
     872006-03-09  Paul Smith  <[email protected]>
     88
     89        * remake.c (update_file_1): Revert the change of 3 Jan 2006 which
     90        listed non-existent files as changed.  Turns out there's a bug in
     91        the Linux kernel builds which means that this change causes
     92        everything to rebuild every time.  We will re-introduce this fix
     93        in the next release, to give them time to fix their build system.
     94        Fixes Savannah bug #16002.
     95        Introduces Savannah bug #16051.
     96
     97        * implicit.c (pattern_search) [DOS_PATHS]: Look for DOS paths if
     98        we *don't* find UNIX "/".
     99        Reported by David Ergo <[email protected]>
     100
     1012006-03-04  Eli Zaretskii  <[email protected]>
     102
     103        * variable.c (do_variable_definition) [WINDOWS32]: Call the shell
     104        locator function find_and_set_default_shell if SHELL came from the
     105        command line.
     106
     1072006-02-20  Paul D. Smith  <[email protected]>
     108
     109        * variable.c (merge_variable_set_lists): It's legal for *setlist0
     110        to be null; don't core in that case.
     111
     1122006-02-19  Paul D. Smith  <[email protected]>
     113
     114        * commands.c (set_file_variables): Realloc, not malloc, the static
     115        string values to avoid memory leaks.
     116
     117        * expand.c (recursively_expand_for_file): Only set reading_file to
     118        an initialized value.
     119
     120        * implicit.c (pattern_search): We need to make a copy of the stem
     121        if we get it from an intermediate dep, since those get freed.
     122
     123        * file.c (lookup_file) [VMS]: Don't lowercase special targets that
     124        begin with ".".
     125        (enter_file) [VMS]: Ditto.
     126        Patch provided by Hartmut Becker <[email protected]>.
     127
     1282006-02-24  Eli Zaretskii  <[email protected]>
     129
     130        * job.c (construct_command_argv_internal): Fix last change.
     131
     132        * w32/subproc/sub_proc.c (process_pipe_io): Make dwStdin,
     133        dwStdout, and dwStderr unsigned int: avoids compiler warnings in
     134        the calls to _beginthreadex.
     135
     136        * expand.c (recursively_expand_for_file): Initialize `save' to
     137        prevent compiler warnings.
     138
     1392006-02-18  Eli Zaretskii  <[email protected]>
     140
     141        * job.c (construct_command_argv_internal): Don't create a temporary
     142        script/batch file if we are under -n.  Call _setmode to switch the
     143        script file stream to text mode.
     144
     1452006-02-17  Paul D. Smith  <[email protected]>
     146
     147        * variable.c (merge_variable_set_lists): Don't try to merge the
     148        global_setlist.  Not only is this useless, but it can lead to
     149        circularities in the linked list, if global_setlist->next in one
     150        list gets set to point to another list which also ends in
     151        global_setlist.
     152        Fixes Savannah bug #15757.
     153
     1542006-02-15  Paul D. Smith  <[email protected]>
     155
     156        Fix for Savannah bug #106.
     157
     158        * expand.c (expanding_var): Keep track of which variable we're
     159        expanding.  If no variable is being expanded, it's the same as
     160        reading_file.
     161        * make.h (expanding_var): Declare it.
     162        * expand.c (recursively_expand_for_file): Set expanding_var to the
     163        current variable we're expanding, unless there's no file info in
     164        it (could happen if it comes from the command line or a default
     165        variable).  Restore it before we exit.
     166        * expand.c (variable_expand_string): Use the expanding_var file
     167        info instead of the reading_file info.
     168        * function.c (check_numeric): Ditto.
     169        (func_word): Ditto.
     170        (func_wordlist): Ditto.
     171        (func_error): Ditto.
     172        (expand_builtin_function): Ditto.
     173        (handle_function): Ditto.
     174
     1752006-02-14  Paul D. Smith  <[email protected]>
     176
     177        * read.c (eval): Even if the included filenames expands to the
     178        empty string we still need to free the allocated buffer.
     179
     180        * implicit.c (pattern_search): If we allocated a variable set for
     181        an impossible file, free it.
     182        * variable.c (free_variable_set): New function.
     183        * variable.h: Declare it.
     184
     185        * read.c (read_all_makefiles): Makefile names are kept in the
     186        strcache, so there's never any need to alloc/free them.
     187        (eval): Ditto.
     188
     189        * main.c (main): Add "archives" to the .FEATURES variable if
     190        archive support is enabled.
     191        * doc/make.texi (Special Variables): Document it.
     192
     1932006-02-13  Paul D. Smith  <[email protected]>
     194
     195        * implicit.c (pattern_search): Add checking for DOS pathnames to
     196        the pattern rule target LASTSLASH manipulation.
     197        Fixes Savannah bug #11183.
     198
     1992006-02-11  Paul D. Smith  <[email protected]>
     200
     201        * (ALL FILES): Updated copyright and license notices.
     202
     2032006-02-10  Paul D. Smith  <[email protected]>
     204
     205        A new internal capability: the string cache is a read-only cache
     206        of strings, with a hash table interface for fast lookup.  Nothing
     207        in the cache will ever be freed, so there's no need for reference
     208        counting, etc.  This is the beginning of a full solution for
     209        Savannah bug #15182, but for now we only store makefile names here.
     210
     211        * strcache.c: New file.  Implement a read-only string cache.
     212        * make.h: Add prototypes for new functions.
     213        * main.c (initialize_global_hash_tables): Initialize the string cache.
     214        (print_data_base): Print string cache stats.
     215        * read.c (eval_makefile): Use the string cache to store makefile
     216        names.  Rewrite the string allocation to be sure we free everything.
     217
     2182006-02-10  Eli Zaretskii  <[email protected]>
     219
     220        * dir.c (dir_contents_file_exists_p): Don't opendir if the
     221        directory time stamp didn't change, except on FAT filesystems.
     222        Suggested by J. David Bryan <[email protected]>.
     223
     2242006-02-09  Paul D. Smith  <[email protected]>
     225
     226        * function.c (func_or): Implement a short-circuiting OR function.
     227        (func_and): Implement a short-circuiting AND function.
     228        (function_table_init): Update the table with the new functions.
     229        * doc/make.texi (Conditional Functions): Changed the "if" section
     230        to one on general conditional functions.  Added documentation for
     231        $(and ...) and $(or ...) functions.
     232        * NEWS: Note new $(and ...) and $(or ...) functions.
     233
     2342006-02-08  Boris Kolpackov  <[email protected]>
     235
     236        * job.h (struct child): Add the dontcare bitfield.
     237        * job.c (new_job): Cache dontcare flag.
     238        * job.c (reap_children): Use cached dontcare flag instead of the
     239        one in struct file. Fixes Savannah bug #15641.
     240
     2412006-02-06  Paul D. Smith  <[email protected]>
     242
     243        * vpath.c (selective_vpath_search): If the file we find has a
     244        timestamp from -o or -W, use that instead of the real time.
     245        * remake.c (f_mtime): If the mtime is a special token from -o or
     246        -W, don't overwrite it with the real mtime.
     247        Fixes Savannah bug #15341.
     248
     249        Updates from Markus Mauhart <[email protected]>:
     250
     251        * w32/subproc/sub_proc.c (process_begin): Remove no-op tests.
     252        (process_signal, process_last_err, process_exit_code): Manage
     253        invalid handle values.
     254        (process_{outbuf,errbuf,outcnt,errcnt,pipes}): Unused and don't
     255        manage invalid handles; remove them.
     256        * job.c (start_job_command) [WINDOWS32]: Jump out on error.
     257        * config.h.W32.template [WINDOWS32]: Set flags for Windows builds.
     258        * README.cvs: Updates for building from CVS.
     259
     2602006-02-05  Paul D. Smith  <[email protected]>
     261
     262        * file.c (enter_file): Keep track of the last double_colon entry,
     263        to avoid walking the list every time we want to add a new one.
     264        Fixes Savannah bug #15533.
     265        * filedef.h (struct file): Add a new LAST pointer.
     266
     267        * dir.c (directory_contents_hash_cmp): Don't use subtraction to do
     268        the comparison.  For 64-bits systems the result of the subtraction
     269        might not fit into an int.  Use comparison instead.
     270        Fixes Savannah bug #15534.
     271
     272        * doc/make.texi: Update the chapter on writing commands to reflect
     273        the changes made in 3.81 for backslash/newline and SHELL handling.
     274
     2752006-02-01  Paul D. Smith  <[email protected]>
     276
     277        * dir.c (dir_contents_file_exists_p) [WINDOWS32]: Make sure
     278        variable st is not used when it's not initialized.
     279        Patch from Eli Zaretskii <[email protected]>.
     280
     2812006-01-31  Paul D. Smith  <[email protected]>
     282
     283        * README.W32.template: Applied patch #4785 from
     284        Markus Mauhart <[email protected]>.
     285        * README.cvs: Applied patch #4786 from
     286        Markus Mauhart <[email protected]>.
     287        * make_msvc_net2003.vcproj [WINDOWS32]: New version from
     288        J. Grant <[email protected]>.
     289
     290        * main.c: Update the copyright year in the version output.
     291        * prepare_w32.bat: Remove this file from the distribution.
     292
     2932006-01-21  Eli Zaretskii  <[email protected]>
     294
     295        * remake.c (update_goal_chain): Set g->changed instead of
     296        incrementing it, as it is only 8-bit wide, and could overflow if
     297        many commands got started in update_file.
     298
     299        * w32/include/sub_proc.h: Add a prototype for process_used_slots.
     300
     301        * w32/subproc/sub_proc.c: Change dimension of proc_array[] to
     302        MAXIMUM_WAIT_OBJECTS.
     303        (process_wait_for_any_private): Change dimension of handles[]
     304        array to MAXIMUM_WAIT_OBJECTS.
     305        (process_used_slots): New function.
     306        (process_register): Don't register more processes than the
     307        available number of slots.
     308        (process_easy): Don't start new processes if all slots are used up.
     309
     310        * job.c (load_too_high, start_waiting_jobs) [WINDOWS32]: If there
     311        are already more children than sub_proc.c can handle, behave as if
     312        the load were too high.
     313        (start_job_command): Fix a typo in error message when process_easy
     314        fails.
     315
     3162006-01-14  Eli Zaretskii  <[email protected]>
     317
     318        * main.c (main) [WINDOWS32]: Don't refuse to run with -jN, even if
     319        the shell is not sh.exe.
     320
     321        * job.c (create_batch_file): Renamed from create_batch_filename;
     322        all callers changed.  Don't close the temporary file; return its
     323        file descriptor instead.  New arg FD allows to return the file
     324        descriptor.
     325        (construct_command_argv_internal): Use _fdopen instead of fopen to
     326        open the batch file.
     327
     3282006-01-04  Paul D. Smith  <[email protected]>
     329
     330        * readme.vms: Updates for case-insensitive VMS file systems from
     331        Hartmut Becker <[email protected]>.
     332        * dir.c (vms_hash): Ditto.
     333        * vmsify.c (copyto): Ditto.
     334        * vmsfunctions.c (readdir): Ditto.
     335
     336        * make.1: Add a section on the exit codes for make.
     337
     338        * doc/make.texi: A number of minor updates to the documentation.
     339
     3402006-01-03  Paul D. Smith  <[email protected]>
     341
     342        * remake.c (update_file_1): Mark a prerequisite changed if it
     343        doesn't exist.
     344
     345        * read.c (eval): Be sure to strip off trailing whitespace from the
     346        prerequisites list properly.  Also, initialize all fields in
     347        struct dep when creating a new one.
     348
     3492005-12-28  Paul D. Smith  <[email protected]>
     350
     351        * config.h.W32.template [WINDOWS32]: Add in some pragmas to
     352        disable warnings for MSC.
     353        Patch by Rob Tulloh <[email protected]>.
     354
     3552005-12-17  Eli Zaretskii  <[email protected]>
     356
     357        * doc/make.texi (Execution): Add a footnote about changes in
     358        handling of backslash-newline sequences.  Mention the differences
     359        on MS-DOS and MS-Windows.
     360
     361        * NEWS: More details about building the MinGW port and a pointer
     362        to README.W32.  Fix the section name that describes the new
     363        backward-incompatible processing of backslash-newline sequences.
     364        The special processing of SHELL set to "cmd" is only relevant to
     365        MS-Windows, not MS-DOS.
     366
     3672005-12-17  Eli Zaretskii  <[email protected]>
     368
     369        * main.c (handle_runtime_exceptions): Cast exrec->ExceptionAddress
     370        to DWORD, to avoid compiler warnings.
     371        * job.c (exec_command): Cast hWaitPID and hPID to DWORD, and
     372        use %ld in format, to avoid compiler warnings.
     373
     374        * doc/make.texi (Special Targets): Fix a typo.
     375        (Appending): Fix cross-reference to Setting.
     376        (Special Variables, Secondary Expansion, File Name Functions)
     377        (Flavor Function, Pattern Match, Quick Reference): Ensure two
     378        periods after a sentence.
     379        (Execution): Add @: after "e.g.".
     380        (Environment): Fix punctuation.
     381        (Target-specific, Call Function, Quick Reference): Add @: after "etc."
     382        (Shell Function, Target-specific): Add @: after "vs."
     383
     3842005-12-14  Boris Kolpackov  <[email protected]>
     385
     386        * read.c (record_target_var): Initialize variable's export field
     387        with v_default instead of leaving it "initialized" by whatever
     388        garbage happened to be on the heap.
     389
     3902005-12-12  Paul D. Smith  <[email protected]>
     391
     392        * make.1: Fix some display errors and document all existing options.
     393        Patch provided by Mike Frysinger <[email protected]>.
     394
     3952005-12-11  Paul D. Smith  <[email protected]>
     396
     397        * implicit.c (pattern_search): If 2nd expansion is not set for
     398        this implicit rule, replace the pattern with the stem directly,
     399        and don't re-expand the variable list.  Along with the other
     400        .SECONDEXPANSION changes below, fixes bug #13781.
     401
     4022005-12-09  Boris Kolpackov  <[email protected]>
     403
     404        * implicit.c (pattern_search): Mark other files that this rule
     405        builds as targets so that they are not treated as intermediates
     406        by the pattern rule search algorithm. Fixes bug #13022.
     407
     4082005-12-07  Boris Kolpackov  <[email protected]>
     409
     410        * remake.c (notice_finished_file): Propagate the change of
     411        modification time to all the double-colon entries only if
     412        it is the last one to be updated. Fixes bug #14334.
     413
     4142005-11-17  Boris Kolpackov  <[email protected]>
     415
     416        * function.c (func_flavor): Implement the flavor function which
     417        returns the flavor of a variable.
     418        * doc/make.texi (Functions for Transforming Text): Document it.
     419        * NEWS: Add it to the list of new functions.
     420
     4212005-11-14  Boris Kolpackov  <[email protected]>
     422
     423        * read.c (construct_include_path): Set the .INCLUDE_DIRS special
     424        variable.
     425        * doc/make.texi (Special Variables): Document .INCLUDE_DIRS.
     426        * NEWS: Add .INCLUDE_DIRS to the list of new special variables.
     427
     4282005-10-26  Paul Smith  <[email protected]>
     429
     430        * read.c (record_files): Don't set deps flags if there are no deps.
     431        * maintMakefile: We only need to build the templates when we are
     432        creating a distribution, so don't do it for "all".
     433
     4342005-10-24  Paul D. Smith  <[email protected]>
     435
     436        Make secondary expansion optional: its enabled by declaring the
     437        special target .SECONDEXPANSION.
     438
     439        * NEWS: Update information on second expansion capabilities.
     440        * doc/make.texi (Secondary Expansion): Document the
     441        .SECONDEXPANSION special target and its behavior.
     442        * dep.h (struct dep): Add a flag STATICPATTERN, set to true if the
     443        prerequisite list was found in a static pattern rule.
     444        (free_dep_chain): Declare a prototype.
     445        * file.c (parse_prereqs): New function: break out some complexity
     446        from expand_deps().
     447        (expand_deps): If we aren't doing second expansion, replace % with
     448        the stem for static pattern rules.  Call the new function.
     449        * filedef.h (parse_prereqs): Declare a prototype.
     450        * implicit.c (pattern_search): Initialize the new staticpattern
     451        field.
     452        * main.c (second_expansion): Declare a global variable to remember
     453        if the special target has been seen.  Initialize the new
     454        staticpattern field for prerequisites.
     455        * make.h: Extern for second_expansion.
     456        * misc.c (free_dep_chain): New function: frees a struct dep list.
     457        * read.c (read_all_makefiles): Initialize the staticpattern field.
     458        (eval_makefile): Ditto.
     459        (record_files): Check for the .SECONDEXPANSION target and set
     460        second_expansion global if it's found.
     461        Use the new free_dep_chain() instead of doing it by hand.
     462        Set the staticpattern field for prereqs of static pattern targets.
     463
     4642005-10-16  Paul D. Smith  <[email protected]>
     465
     466        * main.c (main): Set CURDIR to be a file variable instead of a
     467        default, so that values of CURDIR inherited from the environment
     468        won't override the make value.
     469
     4702005-09-26  Paul D. Smith  <[email protected]>
     471
     472        * job.c (construct_command_argv_internal): If the line is empty
     473        remember to free the temporary argv strings.
     474        Fixes bug # 14527.
     475
     4762005-09-16  Paul D. Smith  <[email protected]>
     477
     478        * job.c (start_job_command): The noerror flag is a boolean (single
     479        bit); set it appropriately.
     480        Reported by Mark Eichin <[email protected]>
     481
     4822005-08-29  Paul D. Smith  <[email protected]>
     483
     484        * function.c (func_error): On Windows, output from $(info ...)
     485        seems to come in the wrong order.  Try to force it with fflush().
     486
     4872005-08-10  Boris Kolpackov  <[email protected]>
     488
     489        * read.c (record_files): Move code that sets stem for static
     490        pattern rules out of the if (!two_colon) condition so it is
     491        also executed for two-colon rules. Fixes Savannah bug #13881.
     492
     4932005-08-08  Paul D. Smith  <[email protected]>
     494
     495        * make.h: Don't test that __STDC__ is non-0.  Some compilers
     496        (Windows for example) set it to 0 to denote "ISO C + extensions".
     497        Fixes bug # 13594.
     498
     4992005-08-07  Paul D. Smith  <[email protected]>
     500
     501        * w32/pathstuff.c (getcwd_fs): Fix warning about assignment in a
     502        conditional (slightly different version of a fix from Eli).
     503
     504        Fix a bug reported by Michael Matz <[email protected]>: patch included.
     505        If make is running in parallel without -k and two jobs die in a
     506        row, but not too close to each other, then make will quit without
     507        waiting for the rest of the jobs to die.
     508
     509        * main.c (die): Don't reset err before calling reap_children() the
     510        second time: we still want it to be in the error condition.
     511        * job.c (reap_children): Use a static variable, rather than err,
     512        to control whether or not the error message should be printed.
     513
     5142005-08-06  Eli Zaretskii  <[email protected]>
     515
     516        * w32/subproc/sub_proc.c: Include signal.h.
     517        (process_pipe_io, process_file_io): Pass a pointer to a local
     518        DWORD variable to GetExitCodeProcess.  If the exit code is
     519        CONTROL_C_EXIT, put SIGINT into pproc->signal.
     520
     521        * job.c [WINDOWS32]: Include windows.h.
     522        (main_thread) [WINDOWS32]: New global variable.
     523        (reap_children) [WINDOWS32]: Get the handle for the main thread
     524        and store it in main_thread.
     525
     526        * commands.c [WINDOWS32]: Include windows.h and w32err.h.
     527        (fatal_error_signal) [WINDOWS32]: Suspend the main thread before
     528        doing anything else.  When we are done, close the main thread
     529        handle and exit with status 130.
     530
     5312005-07-30  Eli Zaretskii  <[email protected]>
     532
     533        * w32/subproc/sub_proc.c (process_begin): Don't pass a NULL
     534        pointer to fprintf.
     535
     536        * main.c (find_and_set_default_shell): If found a DOSish shell,
     537        set sh_found and the value of default_shell, and report the
     538        findings in debug mode.
     539
     540        * job.c (construct_command_argv_internal): Check unixy_shell, not
     541        no_default_sh_exe, to decide whether to use Unixy or DOSish
     542        builtin commands.
     543
     544        * README.W32: Update with info about the MinGW build.
     545
     546        * build_w32.bat: Support MinGW.
     547
     548        * w32/subproc/build.bat: Likewise.
     549
     550        * w32/subproc/sub_proc.c (process_easy): Fix format strings for
     551        printing DWORD args.
     552
     553        * function.c (windows32_openpipe): Fix format strings for printing
     554        DWORD args.
     555
     556        * job.c (reap_children) [WINDOWS32]: Don't declare 'status' and
     557        'reap_mode'.
     558        (start_job_command): Fix format string for printing the result of
     559        process_easy.
     560        (start_job_command) [WINDOWS32]: Do not define.
     561        (exec_command): Fix format string for printing HANDLE args.
     562
     563        * main.c (handle_runtime_exceptions): Fix sprintf format strings
     564        to avoid compiler warnings.
     565        (open_tmpfile): Declare fd only if HAVE_FDOPEN is defined.
     566        (Note: some of these fixes were submitted independently by J. Grant)
     567
     5682005-07-30  J. Grant <[email protected]>
     569
     570        * prepare_w32.bat: Copy config.h.w32 to config.h if not exist.
     571        * make_msvc_net2003.vcproj, make_msvc_net2003.sln: MSVC Project files.
     572        * Makefile.am (EXTRA_DIST): Add MSVC Project files.
     573
     5742005-07-15  Paul Smith  <[email protected]>
     575
     576        * job.c (construct_command_argv_internal) [DOS,WINDOWS32,OS/2]: If
     577        we don't have a POSIX shell, then revert to the old
     578        backslash-newline behavior (where they are stripped).
     579        Fixes bug #13665.
     580
     5812005-07-08  Paul D. Smith  <[email protected]>
     582
     583        * config.h.W32.template: Reorder to match the standard config.h,
     584        for easier comparisons.
     585        From J. Grant <[email protected]>
     586
     587        * maintMakefile: Remove .dep_segment before overwriting it, in
     588        case it's not writable or noclobber is set.
     589        * expand.c (variable_expand_string): Cast result of pointer
     590        arithmetic to avoid a warning.
     591        * main.c (switches): Add full-fledged final initializer.
     592
     5932005-07-06  Paul D. Smith  <[email protected]>
     594
     595        * configure.in: IRIX has _sys_siglist.  Tru64 UNIX has __sys_siglist.
     596        * signame.c (strsignal): If we found _sys_siglist[] or
     597        __sys_siglist[] use those instead of sys_siglist[].
     598        From Albert Chin <[email protected]>
     599
     6002005-07-04  Paul D. Smith  <[email protected]>
     601
     602        * config.h-vms.template [VMS]: Latest VMS has its own glob() and
     603        globfree(); set up to use the GNU versions.
     604        From Martin Zinser <[email protected]>
     605
     6062005-07-03  Paul D. Smith  <[email protected]>
     607
     608        From J. Grant <[email protected]>:
     609
     610        * README.W32.template: Update the Windows and tested MSVC versions.
     611        * NMakefile.template (CFLAGS_any): Change warning level from W3 to W4.
     612        * w32/subproc/NMakefile (CFLAGS_any): Ditto.
     613        * build_w32.bat: Ditto.
     614        * w32/subproc/build.bat: Ditto.
     615
     6162005-06-28  Paul D. Smith  <[email protected]>
     617
     618        * signame.c: HAVE_DECL_* macros are set to 0, not undef, if the
     619        declaration was checked but not present.
     620
     6212005-06-27  Paul D. Smith  <[email protected]>
     622
     623        * dir.c (find_directory): Change type of fs_serno/fs_flags/fs_len
     624        to unsigned long.  Fixes Savannah bug #13550.
     625
     626        * w32/subproc/sub_proc.c: Remove (HANDLE) casts on lvalues.
     627        (process_pipe_io): Initialize tStdin/tStdout/tStderr variables.
     628        Fixes Savannah bug #13551.
     629
     6302005-06-26  Paul D. Smith  <[email protected]>
     631
     632        * make.h: Fix bug in ANSI_STRING/strerror() handling; only define
     633        it if ANSI_STRING is not set.
     634
     6352005-06-25  Paul D. Smith  <[email protected]>
     636
     637        * read.c (eval): If no filenames are passed to any of the
     638        "include" variants, don't print an error.
     639        * doc/make.texi (Include): Document this.
     640        Fixes Savannah bug #1761.
     641
     642        * job.c (construct_command_argv_internal): Sanitize handling of
     643        backslash/newline pairs according to POSIX: that is, keep the
     644        backslash-newline in the command script, but remove a following
     645        TAB character, if present.  In the fast path, make sure that the
     646        behavior matches what the shell would do both inside and outside
     647        of quotes.  In the slow path, quote the backslash and put a
     648        literal newline in the string.
     649        Fixes Savannah bug #1332.
     650        * doc/make.texi (Execution): Document the new behavior and give
     651        some examples.
     652        * NEWS: Make a note of the new behavior.
     653
     654        * make.h [WINDOWS32]: #include <direct.h>.
     655        Fixes Savannah bug #13478.
     656
     657        * remake.c (name_mtime): If the stat() of a file fails and the -L
     658        option was given and the file is a symlink, take the best mtime of
     659        the symlink we can get as the mtime of the file and don't fail.
     660        Fixes Savannah bug #13280.
     661
     662        * read.c (find_char_unquote): Accept a new argument IGNOREVARS.
     663        If it's set, then don't stop on STOPCHARs or BLANKs if they're
     664        inside a variable reference.  Make this function static as it's
     665        only used here.
     666        (eval): Call find_char_unquote() with IGNOREVARS set when we're
     667        parsing an unexpanded line looking for semicolons.
     668        Fixes Savannah bug #1454.
     669        * misc.c (remove_comments): Move this to read.c and make it static
     670        as it's only used there.  Call find_char_unquote() with new arg.
     671        * make.h: Remove prototypes for find_char_unquote() and
     672        remove_comments() since they're static now.
     673
     674        * main.c (main): If we see MAKE_RESTARTS in the environment, unset
     675        its export flag and obtain its value.  When we need to re-exec,
     676        increment the value and add it into the environment.
     677        * doc/make.texi (Special Variables): Document MAKE_RESTARTS.
     678        * NEWS: Mention MAKE_RESTARTS.
     679        * main.c (always_make_set): New variable.  Change the -B option to
     680        set this one instead.
     681        (main): When checking makefiles, only set always_make_flag if
     682        always_make_set is set AND the restarts flag is 0.  When building
     683        normal targets, set it IFF always_make_set is set.
     684        (main): Avoid infinite recursion with -W, too: only set what-if
     685        files to NEW before we check makefiles if we've never restarted
     686        before.  If we have restarted, set what-if files to NEW _after_ we
     687        check makefiles.
     688        Fixes Savannah bug #7566:
     689
     6902005-06-17  Paul D. Smith  <[email protected]>
     691
     692        * default.c: Change VMS implicit rules to use $$$$ instead of $$
     693        in the prerequisites list.
     694
     6952005-06-12  Paul D. Smith  <[email protected]>
     696
     697        Fix Savannah bug # 1328.
     698
     699        * configure.in: Check for atexit().
     700        * misc.c (close_stdout): Test stdout to see if writes to it have
     701        failed.  If so, be sure to exit with a non-0 error code.  Based on
     702        code found in gnulib.
     703        * make.h: Prototype.
     704        * main.c (main): Install close_stdout() with atexit().
     705
     7062005-06-10  Paul D. Smith  <[email protected]>
     707
     708        VMS build updates from Hartmut Becker <[email protected]>:
     709
     710        * vmsjobs.c [VMS]: Updates to compile on VMS: add some missing
     711        headers; make vmsWaitForChildren() static; extern vmsify().
     712        * job.c [VMS]: Move vmsWaitForChildren() prototype to be global.
     713        Don't create child_execute_job() here (it's in vmsjobs.c).
     714        * makefile.vms (job.obj) [VMS]: Add vmsjobs.c as a prerequisite.
     715
     7162005-06-09  Paul D. Smith  <[email protected]>
     717
     718        * variable.c (push_new_variable_scope): File variables point
     719        directly to the global_setlist variable.  So, inserting a new
     720        scope in front of that has no effect on those variables: they
     721        don't go through current_variable_set_list.  If we're pushing a
     722        scope and the current scope is global, push it "the other way" so
     723        that the new setlist is in the global_setlist variable, and
     724        next points to a new setlist with the global variable set.
     725        (pop_variable_scope): Properly undo a push with the new
     726        semantics.
     727        Fixes Savannah bug #11913.
     728
     7292005-05-31  Boris Kolpackov  <[email protected]>
     730
     731        * job.c (reap_children): Don't die of the command failed but
     732        the dontcare flag is set. Fixes Savannah bug #13216.
     733
     734        * implicit.c (pattern_search): When creating a target from
     735        an implicit rule match, lookup pattern target and set precious
     736        flag in a newly created target. Fixes Savannah bug #13218.
     737
    17382005-05-13  Paul D. Smith  <[email protected]>
    2739
     
    3471084
    3481085        * configure.in: Add MinGW configuration options, and extra w32 code
    349         directory.
     1086        directory.
    3501087        * Makefile.am: Add MinGW configuration options, and extra w32 code
    351         directory.
     1088        directory.
    3521089        * main.c: Determine correct program string (after last \ without .exe).
    3531090        * subproc/sub_proc.c: `GetExitCodeProcess' from incompatible pointer
    354         type fix x2
     1091        type fix x2
    3551092        * w32/Makefile.am: Import to build win32 lib of sub_proc etc.
    3561093        * subproc/w32err.c: MSVC thread directive not applied to MinGW builds.
    3571094        * tests/run_make_tests.pl, tests/test_driver.pl: MSYS testing
    358         environment support.
     1095        environment support.
    3591096
    36010972004-04-16  Dmitry V. Levin  <[email protected]>
    3611098
    362         * function.c (func_shell): When initializing error_prefix, check
    363         that reading file name is not null.  This fixes long-standing
    364         segfault in cases like "make 'a1=$(shell :)' 'a2:=$(a1)'".
     1099        * function.c (func_shell): When initializing error_prefix, check
     1100        that reading file name is not null.  This fixes long-standing
     1101        segfault in cases like "make 'a1=$(shell :)' 'a2:=$(a1)'".
    3651102
    36611032005-02-09  Paul D. Smith  <[email protected]>
     
    15232260        * read.c (read_all_makefiles, read_makefile, multi_glob): Likewise.
    15242261        (read_makefile): Parse '|' in prerequisite list.
    1525         (uniquize_deps): Consider ignore_mtime when comparing deps.
     2262        (uniquize_deps): Consider ignore_mtime when comparing deps.
    15262263        * remake.c (update_file_1, check_dep): Don't force remake for
    15272264        dependencies that have d->ignore_mtime.
    15282265        * commands.c (FILE_LIST_SEPARATOR): New constant.
    1529         (set_file_variables): Don't include a
     2266        (set_file_variables): Don't include a
    15302267        prerequisite in $+, $^ or $? if d->ignore_mtime.
    1531         Define $|.
     2268        Define $|.
    15322269
    153322702002-06-18  Paul D. Smith  <[email protected]>
     
    156323002002-05-18  Eli Zaretskii  <[email protected]>
    15642301
    1565         * Makefile.DOS.template: Tweak according to changes in the
    1566         distribution.  Add back the dependencies of *.o files.
    1567 
    1568         * configh.dos.template: Synchronize with config.h.in.
     2302        * Makefile.DOS.template: Tweak according to changes in the
     2303        distribution.  Add back the dependencies of *.o files.
     2304
     2305        * configh.dos.template: Synchronize with config.h.in.
    15692306
    157023072002-05-09  Paul D. Smith  <[email protected]>
     
    20002737
    20012738for earlier changes.
     2739
     2740
     2741Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software
     2742Foundation, Inc.
     2743This file is part of GNU Make.
     2744
     2745GNU Make is free software; you can redistribute it and/or modify it under the
     2746terms of the GNU General Public License as published by the Free Software
     2747Foundation; either version 2, or (at your option) any later version.
     2748
     2749GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     2750WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     2751A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     2752
     2753You should have received a copy of the GNU General Public License along with
     2754GNU Make; see the file COPYING.  If not, write to the Free Software
     2755Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  • vendor/gnumake/current/Makefile.DOS

    r152 r501  
    11# -*-Makefile-*- template for DJGPP
    22# Makefile.in generated automatically by automake 1.2 from Makefile.am
    3 
    4 # Copyright (C) 1994, 1995-1998, 1999, 2002 Free Software Foundation, Inc.
    5 # This Makefile.DOS is free software; the Free Software Foundation
    6 # gives unlimited permission to copy, distribute and modify it.
    7 
     3#
     4# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
     5# 2004, 2005, 2006 Free Software Foundation, Inc.
     6# This file is part of GNU Make.
     7#
     8# GNU Make is free software; you can redistribute it and/or modify it under the
     9# terms of the GNU General Public License as published by the Free Software
     10# Foundation; either version 2, or (at your option) any later version.
     11#
     12# GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     13# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     14# A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     15#
     16# You should have received a copy of the GNU General Public License along with
     17# GNU Make; see the file COPYING.  If not, write to the Free Software
     18# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
    819
    920SHELL = /bin/sh
     
    6172RANLIB = ranlib
    6273REMOTE = stub
    63 VERSION = 3.81beta1
     74VERSION = 3.81
    6475
    6576AUTOMAKE_OPTIONS = 1.2
     
    6778bin_PROGRAMS =  make$(EXEEXT)
    6879
    69 make_SOURCES =  ar.c arscan.c commands.c default.c dir.c expand.c file.c function.c getopt.c getopt1.c implicit.c job.c main.c misc.c read.c remake.c rule.c signame.c variable.c version.c vpath.c hash.c remote-$(REMOTE).c
     80make_SOURCES =  ar.c arscan.c commands.c default.c dir.c expand.c file.c function.c getopt.c getopt1.c implicit.c job.c main.c misc.c read.c remake.c rule.c signame.c strcache.c variable.c version.c vpath.c hash.c remote-$(REMOTE).c
    7081# This should include the glob/ prefix
    7182libglob_a_SOURCES =     glob/fnmatch.c glob/glob.c glob/fnmatch.h glob/glob.h
     
    94105LDFLAGS =
    95106LIBS =
    96 make_OBJECTS =  ar.o arscan.o commands.o default.o dir.o expand.o file.o function.o getopt.o getopt1.o implicit.o job.o main.o misc.o read.o remake.o rule.o signame.o variable.o version.o vpath.o hash.o remote-$(REMOTE).o
     107make_OBJECTS =  ar.o arscan.o commands.o default.o dir.o expand.o file.o function.o getopt.o getopt1.o implicit.o job.o main.o misc.o read.o remake.o rule.o signame.o strcache.o variable.o version.o vpath.o hash.o remote-$(REMOTE).o
    97108make_DEPENDENCIES =    glob/libglob.a
    98109make_LDFLAGS =
     
    535546# --------------- DEPENDENCIES
    536547#
     548
     549# .deps/alloca.Po
    537550# dummy
     551
     552# .deps/ar.Po
     553ar.o ar.o: ar.c make.h config.h \
     554  getopt.h \
     555  gettext.h filedef.h hash.h dep.h \
     556
     557# .deps/arscan.Po
     558arscan.o arscan.o: arscan.c make.h config.h \
     559  getopt.h \
     560  gettext.h \
     561
     562# .deps/commands.Po
     563commands.o commands.o: commands.c make.h config.h \
     564  getopt.h \
     565  gettext.h dep.h filedef.h hash.h variable.h \
     566  job.h commands.h
     567
     568# .deps/default.Po
     569default.o default.o: default.c make.h config.h \
     570  getopt.h \
     571  gettext.h filedef.h hash.h variable.h rule.h \
     572  dep.h job.h commands.h
     573
     574# .deps/dir.Po
     575dir.o dir.o: dir.c make.h config.h \
     576  getopt.h \
     577  gettext.h hash.h \
     578
     579# .deps/expand.Po
     580expand.o expand.o: expand.c make.h config.h \
     581  getopt.h \
     582  gettext.h filedef.h hash.h \
     583  job.h commands.h \
     584  variable.h rule.h
     585
     586# .deps/file.Po
     587file.o file.o: file.c make.h config.h \
     588  getopt.h \
     589  gettext.h dep.h filedef.h \
     590  hash.h job.h commands.h \
     591  variable.h debug.h
     592
     593# .deps/function.Po
     594function.o function.o: function.c make.h config.h \
     595  getopt.h \
     596  gettext.h filedef.h hash.h variable.h dep.h \
     597  job.h commands.h debug.h
     598
     599# .deps/getloadavg.Po
    538600# dummy
    539 ar.o : \
    540  ar.c make.h config.h \
    541  getopt.h \
    542  gettext.h filedef.h \
    543  hash.h dep.h
    544 arscan.o : \
    545  arscan.c make.h config.h \
    546  getopt.h \
    547  gettext.h \
    548 
    549 commands.o : \
    550  commands.c make.h config.h \
    551  getopt.h \
    552  gettext.h dep.h \
    553  filedef.h hash.h variable.h job.h \
    554  commands.h
    555 default.o : \
    556  default.c make.h config.h \
    557  getopt.h \
    558  gettext.h filedef.h \
    559  hash.h variable.h rule.h dep.h job.h \
    560  commands.h
    561 dir.o : \
    562  dir.c make.h config.h \
    563  getopt.h \
    564  gettext.h hash.h \
    565 
    566 expand.o : \
    567  expand.c make.h config.h \
    568  getopt.h \
    569  gettext.h \
    570  filedef.h hash.h job.h \
    571  commands.h variable.h rule.h
    572 file.o : \
    573  file.c make.h config.h \
    574  getopt.h \
    575  gettext.h \
    576  dep.h filedef.h hash.h job.h \
    577  commands.h variable.h \
    578  debug.h
    579 function.o : \
    580  function.c make.h config.h \
    581  getopt.h \
    582  gettext.h filedef.h \
    583  hash.h variable.h dep.h job.h \
    584  commands.h debug.h
    585 getopt.o : \
    586  getopt.c config.h \
    587 
    588 getopt1.o : \
    589  getopt1.c config.h getopt.h \
    590 
    591 hash.o : \
    592  hash.c make.h config.h \
    593  getopt.h \
    594  gettext.h hash.h
    595 implicit.o : \
    596  implicit.c make.h config.h \
    597  getopt.h \
    598  gettext.h filedef.h \
    599  hash.h rule.h dep.h debug.h
    600 job.o : \
    601  job.c make.h config.h \
    602  getopt.h \
    603  gettext.h \
    604  job.h \
    605  debug.h filedef.h hash.h commands.h \
    606  variable.h \
    607 
    608 loadavg-getloadavg.o : \
    609  getloadavg.c config.h \
    610  make.h \
    611  getopt.h \
    612  gettext.h \
    613 
    614 main.o : \
    615  main.c make.h config.h \
    616  getopt.h \
    617  gettext.h dep.h \
    618  filedef.h hash.h variable.h job.h \
    619  commands.h rule.h debug.h \
    620 
    621 misc.o : \
    622  misc.c make.h config.h \
    623  getopt.h \
    624  gettext.h dep.h \
    625  debug.h
    626 read.o : \
    627  read.c make.h config.h \
    628  getopt.h \
    629  gettext.h \
    630  dep.h filedef.h hash.h \
    631  job.h commands.h \
    632  variable.h rule.h debug.h
    633 remake.o : \
    634  remake.c make.h config.h \
    635  getopt.h \
    636  gettext.h filedef.h \
    637  hash.h job.h \
    638  commands.h dep.h variable.h debug.h
     601
     602# .deps/getopt.Po
     603getopt.o getopt.o: getopt.c config.h \
     604
     605# .deps/getopt1.Po
     606getopt1.o getopt1.o: getopt1.c config.h getopt.h \
     607
     608# .deps/hash.Po
     609hash.o hash.o: hash.c make.h config.h \
     610  getopt.h \
     611  gettext.h hash.h
     612
     613# .deps/implicit.Po
     614implicit.o implicit.o: implicit.c make.h config.h \
     615  getopt.h \
     616  gettext.h filedef.h hash.h rule.h dep.h debug.h \
     617  variable.h job.h \
     618  commands.h
     619
     620# .deps/job.Po
     621job.o job.o: job.c make.h config.h \
     622  getopt.h \
     623  gettext.h job.h \
     624  debug.h filedef.h hash.h \
     625  commands.h variable.h \
     626
     627# .deps/loadavg-getloadavg.Po
     628loadavg-getloadavg.o loadavg-getloadavg.o: getloadavg.c config.h \
     629  make.h \
     630  getopt.h \
     631  gettext.h \
     632
     633# .deps/main.Po
     634main.o main.o: main.c make.h config.h \
     635  getopt.h \
     636  gettext.h dep.h filedef.h hash.h variable.h \
     637  job.h commands.h rule.h \
     638  debug.h getopt.h \
     639
     640# .deps/misc.Po
     641misc.o misc.o: misc.c make.h config.h \
     642  getopt.h \
     643  gettext.h dep.h debug.h
     644
     645# .deps/read.Po
     646read.o read.o: read.c make.h config.h \
     647  getopt.h \
     648  gettext.h \
     649  dep.h filedef.h hash.h job.h \
     650  commands.h variable.h rule.h debug.h \
     651
     652# .deps/remake.Po
     653remake.o remake.o: remake.c make.h config.h \
     654  getopt.h \
     655  gettext.h filedef.h hash.h job.h \
     656  commands.h dep.h \
     657  variable.h debug.h
     658
     659# .deps/remote-cstms.Po
    639660# dummy
    640 remote-stub.o : \
    641  remote-stub.c make.h config.h \
    642  getopt.h \
    643  gettext.h filedef.h \
    644  hash.h job.h \
    645  commands.h
    646 rule.o : \
    647  rule.c make.h config.h \
    648  getopt.h \
    649  gettext.h dep.h \
    650  filedef.h hash.h job.h \
    651  commands.h variable.h rule.h
    652 signame.o : \
    653  signame.c make.h config.h \
    654  getopt.h \
    655  gettext.h
    656 variable.o : \
    657  variable.c make.h config.h \
    658  getopt.h \
    659  gettext.h dep.h \
    660  filedef.h hash.h job.h \
    661  commands.h variable.h rule.h
    662 version.o : \
    663  version.c config.h
    664 vpath.o : \
    665  vpath.c make.h config.h \
    666  getopt.h \
    667  gettext.h filedef.h \
    668  hash.h variable.h
     661
     662# .deps/remote-stub.Po
     663remote-stub.o remote-stub.o: remote-stub.c make.h config.h \
     664  getopt.h \
     665  gettext.h filedef.h hash.h job.h \
     666  commands.h
     667
     668# .deps/rule.Po
     669rule.o rule.o: rule.c make.h config.h \
     670  getopt.h \
     671  gettext.h dep.h filedef.h hash.h job.h \
     672  commands.h variable.h \
     673  rule.h
     674
     675# .deps/signame.Po
     676signame.o signame.o: signame.c make.h config.h \
     677  getopt.h \
     678  gettext.h
     679
     680# .deps/strcache.Po
     681strcache.o strcache.o: strcache.c make.h config.h \
     682  getopt.h \
     683  gettext.h hash.h
     684
     685# .deps/variable.Po
     686variable.o variable.o: variable.c make.h config.h \
     687  getopt.h \
     688  gettext.h dep.h filedef.h \
     689  hash.h job.h commands.h \
     690  variable.h rule.h
     691
     692# .deps/version.Po
     693version.o version.o: version.c config.h
     694
     695# .deps/vmsjobs.Po
     696# dummy
     697
     698# .deps/vpath.Po
     699vpath.o vpath.o: vpath.c make.h config.h \
     700  getopt.h \
     701  gettext.h filedef.h hash.h variable.h
  • vendor/gnumake/current/Makefile.am

    r280 r501  
    11# This is a -*-Makefile-*-, or close enough
     2#
     3# Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
     4# Free Software Foundation, Inc.
     5# This file is part of GNU Make.
     6#
     7# GNU Make is free software; you can redistribute it and/or modify it under the
     8# terms of the GNU General Public License as published by the Free Software
     9# Foundation; either version 2, or (at your option) any later version.
     10#
     11# GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     12# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     13# A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     14#
     15# You should have received a copy of the GNU General Public License along with
     16# GNU Make; see the file COPYING.  If not, write to the Free Software
     17# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
    218
    319AUTOMAKE_OPTIONS = 1.8 dist-bzip2 check-news ansi2knr
    420ACLOCAL_AMFLAGS =  -I config
     21
     22MAKE_HOST =     @MAKE_HOST@
    523
    624# Only process if target is MS-Windows
     
    2543                function.c getopt.c getopt1.c implicit.c job.c main.c \
    2644                misc.c read.c remake.c $(remote) rule.c signame.c \
    27                 variable.c version.c vpath.c hash.c
     45                strcache.c variable.c version.c vpath.c hash.c
    2846
    2947EXTRA_make_SOURCES = vmsjobs.c remote-stub.c remote-cstms.c
     
    5068
    5169# Extra stuff to include in the distribution.
    52 # Note we need all the glob stuff here, rather than in glob/Makefile.am,
    53 # because often that directory isn't built on the systems used by the
    54 # maintainers.
    5570
    5671EXTRA_DIST =    README build.sh.in $(man_MANS) \
     
    6075                README.DOS Makefile.DOS configure.bat dosbuild.bat configh.dos\
    6176                README.W32 NMakefile config.h.W32 build_w32.bat subproc.bat \
     77                make_msvc_net2003.sln make_msvc_net2003.vcproj \
    6278                readme.vms makefile.vms makefile.com config.h-vms \
    6379                vmsdir.h vmsfunctions.c vmsify.c
    6480
    65 MAKE_HOST =     @MAKE_HOST@
     81# This is built during configure, but behind configure's back
    6682
     83DISTCLEANFILES = build.sh
    6784
    6885# Forward targets
     
    137154
    138155# The loadavg function is invoked during "make check" to test getloadavg.
    139 noinst_PROGRAMS = loadavg
     156check_PROGRAMS = loadavg
    140157nodist_loadavg_SOURCES = getloadavg.c
    141158loadavg_CPPFLAGS = -DTEST
  • vendor/gnumake/current/Makefile.ami

    r54 r501  
     1# -*-Makefile-*- for GNU make on Amiga
     2#
    13# NOTE: If you have no `make' program at all to process this makefile, run
    24# `build.sh' instead.
    35#
    4 # Copyright (C) 1988, 89, 91, 92, 93, 94, 1995 Free Software Foundation, Inc.
     6# Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
     7# 2005, 2006 Free Software Foundation, Inc.
    58# This file is part of GNU Make.
    69#
    7 # GNU Make is free software; you can redistribute it and/or modify
    8 # it under the terms of the GNU General Public License as published by
    9 # the Free Software Foundation; either version 2, or (at your option)
    10 # any later version.
    11 #
    12 # GNU Make is distributed in the hope that it will be useful,
    13 # but WITHOUT ANY WARRANTY; without even the implied warranty of
    14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    15 # GNU General Public License for more details.
    16 #
    17 # You should have received a copy of the GNU General Public License
    18 # along with GNU Make; see the file COPYING.  If not, write to
    19 # the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    20 # Boston, MA 02111-1307, USA.
     10# GNU Make is free software; you can redistribute it and/or modify it under the
     11# terms of the GNU General Public License as published by the Free Software
     12# Foundation; either version 2, or (at your option) any later version.
     13#
     14# GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     15# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     16# A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     17#
     18# You should have received a copy of the GNU General Public License along with
     19# GNU Make; see the file COPYING.  If not, write to the Free Software
     20# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
    2121
    2222#
     
    120120objs = commands.o job.o dir.o file.o misc.o main.o read.o remake.o      \
    121121       rule.o implicit.o default.o variable.o expand.o function.o       \
    122        vpath.o version.o ar.o arscan.o signame.o hash.o                 \
     122       vpath.o version.o ar.o arscan.o signame.o strcache.o hash.o      \
    123123       remote-$(REMOTE).o $(GETOPT) $(ALLOCA) $(extras)
    124124srcs = $(srcdir)commands.c $(srcdir)job.c $(srcdir)dir.c             \
     
    129129       $(srcdir)vpath.c $(srcdir)version.c $(srcdir)hash.c           \
    130130       $(srcdir)remote-$(REMOTE).c                                     \
    131        $(srcdir)ar.c $(srcdir)arscan.c                                \
     131       $(srcdir)ar.c $(srcdir)arscan.c $(srcdir)strcache.c              \
    132132       $(srcdir)signame.c $(srcdir)signame.h $(GETOPT_SRC)            \
    133133       $(srcdir)commands.h $(srcdir)dep.h $(srcdir)filedep.h            \
     
    295295 commands.h amiga.h
    296296vpath.o: vpath.c make.h filedef.h variable.h
     297strcache.o: strcache.c make.h hash.h
    297298version.o: version.c
    298299ar.o: ar.c make.h filedef.h dep.h
  • vendor/gnumake/current/Makefile.in

    r152 r501  
    1 # Makefile.in generated by automake 1.8.2 from Makefile.am.
     1# Makefile.in generated by automake 1.9.6 from Makefile.am.
    22# @configure_input@
    33
    44# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
    5 # 2003, 2004  Free Software Foundation, Inc.
     5# 2003, 2004, 2005  Free Software Foundation, Inc.
    66# This Makefile.in is free software; the Free Software Foundation
    77# gives unlimited permission to copy and/or distribute it,
     
    1616
    1717# This is a -*-Makefile-*-, or close enough
    18 
    19 
    20 SOURCES = $(nodist_loadavg_SOURCES) $(make_SOURCES) $(EXTRA_make_SOURCES)
     18#
     19# Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
     20# Free Software Foundation, Inc.
     21# This file is part of GNU Make.
     22#
     23# GNU Make is free software; you can redistribute it and/or modify it under the
     24# terms of the GNU General Public License as published by the Free Software
     25# Foundation; either version 2, or (at your option) any later version.
     26#
     27# GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     28# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     29# A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     30#
     31# You should have received a copy of the GNU General Public License along with
     32# GNU Make; see the file COPYING.  If not, write to the Free Software
     33# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
     34
    2135
    2236srcdir = @srcdir@
     
    4054PRE_UNINSTALL = :
    4155POST_UNINSTALL = :
     56build_triplet = @build@
    4257host_triplet = @host@
    4358ANSI2KNR = @ANSI2KNR@
    4459bin_PROGRAMS = make$(EXEEXT)
    45 noinst_PROGRAMS = loadavg$(EXEEXT)
     60# Only process if target is MS-Windows
     61@WINDOWSENV_TRUE@am__append_1 = $(W32LIB)
     62# Only process if target is MS-Windows
     63@WINDOWSENV_TRUE@am__append_2 = $(W32INC)
     64check_PROGRAMS = loadavg$(EXEEXT)
    4665subdir = .
    47 DIST_COMMON = $(am__configure_deps) $(noinst_HEADERS) \
     66DIST_COMMON = README $(am__configure_deps) $(noinst_HEADERS) \
    4867        $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
    49         $(srcdir)/build.sh.in $(srcdir)/config.h.in \
    50         $(top_srcdir)/configure ABOUT-NLS AUTHORS COPYING ChangeLog \
    51         INSTALL NEWS alloca.c ansi2knr.1 ansi2knr.c getloadavg.c
     68        $(srcdir)/config.h.in $(top_srcdir)/configure ABOUT-NLS \
     69        AUTHORS COPYING ChangeLog INSTALL NEWS alloca.c ansi2knr.1 \
     70        ansi2knr.c getloadavg.c
    5271ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
    5372am__aclocal_m4_deps = $(top_srcdir)/config/dospaths.m4 \
     
    6483mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
    6584CONFIG_HEADER = config.h
    66 CONFIG_CLEAN_FILES = build.sh
    67 am__installdirs = $(DESTDIR)$(bindir) $(DESTDIR)$(man1dir)
     85CONFIG_CLEAN_FILES =
     86am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)"
    6887binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
    69 PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS)
     88PROGRAMS = $(bin_PROGRAMS)
    7089nodist_loadavg_OBJECTS = loadavg-getloadavg$U.$(OBJEXT)
    7190loadavg_OBJECTS = $(nodist_loadavg_OBJECTS)
     
    7392am__make_SOURCES_DIST = ar.c arscan.c commands.c default.c dir.c \
    7493        expand.c file.c function.c getopt.c getopt1.c implicit.c job.c \
    75         main.c misc.c read.c remake.c remote-stub.c rule.c signame.c \
    76         variable.c version.c vpath.c hash.c
     94        main.c misc.c read.c remake.c remote-stub.c remote-cstms.c \
     95        rule.c signame.c strcache.c variable.c version.c vpath.c \
     96        hash.c
    7797@USE_CUSTOMS_FALSE@am__objects_1 = remote-stub$U.$(OBJEXT)
    7898@USE_CUSTOMS_TRUE@am__objects_1 = remote-cstms$U.$(OBJEXT)
     
    83103        job$U.$(OBJEXT) main$U.$(OBJEXT) misc$U.$(OBJEXT) \
    84104        read$U.$(OBJEXT) remake$U.$(OBJEXT) $(am__objects_1) \
    85         rule$U.$(OBJEXT) signame$U.$(OBJEXT) variable$U.$(OBJEXT) \
    86         version$U.$(OBJEXT) vpath$U.$(OBJEXT) hash$U.$(OBJEXT)
     105        rule$U.$(OBJEXT) signame$U.$(OBJEXT) strcache$U.$(OBJEXT) \
     106        variable$U.$(OBJEXT) version$U.$(OBJEXT) vpath$U.$(OBJEXT) \
     107        hash$U.$(OBJEXT)
    87108make_OBJECTS = $(am_make_OBJECTS)
    88109am__DEPENDENCIES_1 =
    89 make_DEPENDENCIES = @LIBOBJS@ @ALLOCA@ $(am__DEPENDENCIES_1)
     110@WINDOWSENV_TRUE@am__DEPENDENCIES_2 = $(am__DEPENDENCIES_1)
     111make_DEPENDENCIES = @LIBOBJS@ @ALLOCA@ $(am__DEPENDENCIES_1) \
     112        $(am__DEPENDENCIES_2)
    90113DEFAULT_INCLUDES = -I. -I$(srcdir) -I.
    91114depcomp = $(SHELL) $(top_srcdir)/config/depcomp
    92115am__depfiles_maybe = depfiles
    93 @AMDEP_TRUE@DEP_FILES = $(DEPDIR)/alloca.Po $(DEPDIR)/getloadavg.Po \
    94 @AMDEP_TRUE@    ./$(DEPDIR)/ar$U.Po ./$(DEPDIR)/arscan$U.Po \
    95 @AMDEP_TRUE@    ./$(DEPDIR)/commands$U.Po ./$(DEPDIR)/default$U.Po \
    96 @AMDEP_TRUE@    ./$(DEPDIR)/dir$U.Po ./$(DEPDIR)/expand$U.Po \
    97 @AMDEP_TRUE@    ./$(DEPDIR)/file$U.Po ./$(DEPDIR)/function$U.Po \
    98 @AMDEP_TRUE@    ./$(DEPDIR)/getopt$U.Po ./$(DEPDIR)/getopt1$U.Po \
    99 @AMDEP_TRUE@    ./$(DEPDIR)/hash$U.Po ./$(DEPDIR)/implicit$U.Po \
    100 @AMDEP_TRUE@    ./$(DEPDIR)/job$U.Po \
    101 @AMDEP_TRUE@    ./$(DEPDIR)/loadavg-getloadavg$U.Po \
    102 @AMDEP_TRUE@    ./$(DEPDIR)/main$U.Po ./$(DEPDIR)/misc$U.Po \
    103 @AMDEP_TRUE@    ./$(DEPDIR)/read$U.Po ./$(DEPDIR)/remake$U.Po \
    104 @AMDEP_TRUE@    ./$(DEPDIR)/remote-cstms$U.Po \
    105 @AMDEP_TRUE@    ./$(DEPDIR)/remote-stub$U.Po ./$(DEPDIR)/rule$U.Po \
    106 @AMDEP_TRUE@    ./$(DEPDIR)/signame$U.Po ./$(DEPDIR)/variable$U.Po \
    107 @AMDEP_TRUE@    ./$(DEPDIR)/version$U.Po ./$(DEPDIR)/vpath$U.Po
    108116COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
    109117        $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
     
    125133ETAGS = etags
    126134CTAGS = ctags
    127 DIST_SUBDIRS = $(SUBDIRS)
     135DIST_SUBDIRS = glob config po doc w32
    128136DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
    129137distdir = $(PACKAGE)-$(VERSION)
     
    206214USE_NLS = @USE_NLS@
    207215VERSION = @VERSION@
     216WINDOWSENV_FALSE = @WINDOWSENV_FALSE@
     217WINDOWSENV_TRUE = @WINDOWSENV_TRUE@
    208218XGETTEXT = @XGETTEXT@
    209219ac_ct_CC = @ac_ct_CC@
     
    215225am__leading_dot = @am__leading_dot@
    216226am__quote = @am__quote@
     227am__tar = @am__tar@
     228am__untar = @am__untar@
    217229bindir = @bindir@
    218230build = @build@
     
    245257AUTOMAKE_OPTIONS = 1.8 dist-bzip2 check-news ansi2knr
    246258ACLOCAL_AMFLAGS = -I config
    247 SUBDIRS = glob config po doc
     259
     260# Only process if target is MS-Windows
     261@WINDOWSENV_TRUE@MAYBE_W32 = w32
     262@WINDOWSENV_TRUE@W32INC = -I $(top_srcdir)/w32/include
     263@WINDOWSENV_TRUE@W32LIB = -Lw32 -lw32
     264SUBDIRS = glob config po doc $(MAYBE_W32)
    248265@USE_CUSTOMS_FALSE@remote = remote-stub.c
    249266@USE_CUSTOMS_TRUE@remote = remote-cstms.c
     
    251268                function.c getopt.c getopt1.c implicit.c job.c main.c \
    252269                misc.c read.c remake.c $(remote) rule.c signame.c \
    253                 variable.c version.c vpath.c hash.c
    254 
    255 EXTRA_make_SOURCES = remote-stub.c remote-cstms.c
     270                strcache.c variable.c version.c vpath.c hash.c
     271
     272EXTRA_make_SOURCES = vmsjobs.c remote-stub.c remote-cstms.c
    256273noinst_HEADERS = commands.h dep.h filedef.h job.h make.h rule.h variable.h \
    257274                debug.h getopt.h gettext.h hash.h
    258275
    259 make_LDADD = @LIBOBJS@ @ALLOCA@ $(GLOBLIB) @GETLOADAVG_LIBS@ @LIBINTL@
     276make_LDADD = @LIBOBJS@ @ALLOCA@ $(GLOBLIB) @GETLOADAVG_LIBS@ @LIBINTL@ \
     277        $(am__append_1)
    260278man_MANS = make.1
    261 AM_CPPFLAGS = $(GLOBINC)
     279AM_CPPFLAGS = $(GLOBINC) $(am__append_2)
    262280
    263281# Extra stuff to include in the distribution.
    264 # Note we need all the glob stuff here, rather than in glob/Makefile.am,
    265 # because often that directory isn't built on the systems used by the
    266 # maintainers.
    267282EXTRA_DIST = README build.sh.in $(man_MANS) \
    268283                README.customs README.OS2 \
     
    271286                README.DOS Makefile.DOS configure.bat dosbuild.bat configh.dos\
    272287                README.W32 NMakefile config.h.W32 build_w32.bat subproc.bat \
     288                make_msvc_net2003.sln make_msvc_net2003.vcproj \
    273289                readme.vms makefile.vms makefile.com config.h-vms \
    274290                vmsdir.h vmsfunctions.c vmsify.c
    275291
     292
     293# This is built during configure, but behind configure's back
     294DISTCLEANFILES = build.sh
    276295
    277296# --------------- Internationalization Section
     
    359378distclean-hdr:
    360379        -rm -f config.h stamp-h1
    361 build.sh: $(top_builddir)/config.status $(srcdir)/build.sh.in
    362         cd $(top_builddir) && $(SHELL) ./config.status $@
    363380install-binPROGRAMS: $(bin_PROGRAMS)
    364381        @$(NORMAL_INSTALL)
    365         $(mkdir_p) $(DESTDIR)$(bindir)
     382        test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)"
    366383        @list='$(bin_PROGRAMS)'; for p in $$list; do \
    367384          p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
     
    369386          ; then \
    370387            f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
    371            echo " $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f"; \
    372            $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f || exit 1; \
     388           echo " $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \
     389           $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \
    373390          else :; fi; \
    374391        done
     
    378395        @list='$(bin_PROGRAMS)'; for p in $$list; do \
    379396          f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
    380           echo " rm -f $(DESTDIR)$(bindir)/$$f"; \
    381           rm -f $(DESTDIR)$(bindir)/$$f; \
     397          echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
     398          rm -f "$(DESTDIR)$(bindir)/$$f"; \
    382399        done
    383400
     
    385402        -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
    386403
    387 clean-noinstPROGRAMS:
    388         -test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS)
     404clean-checkPROGRAMS:
     405        -test -z "$(check_PROGRAMS)" || rm -f $(check_PROGRAMS)
    389406loadavg$(EXEEXT): $(loadavg_OBJECTS) $(loadavg_DEPENDENCIES)
    390407        @rm -f loadavg$(EXEEXT)
     
    433450@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rule$U.Po@am__quote@
    434451@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/signame$U.Po@am__quote@
     452@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strcache$U.Po@am__quote@
    435453@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/variable$U.Po@am__quote@
    436454@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/version$U.Po@am__quote@
     455@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vmsjobs$U.Po@am__quote@
    437456@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vpath$U.Po@am__quote@
    438457
     
    441460@am__fastdepCC_TRUE@    then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
    442461@AMDEP_TRUE@@am__fastdepCC_FALSE@       source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
    443 @AMDEP_TRUE@@am__fastdepCC_FALSE@       depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
    444 @AMDEP_TRUE@@am__fastdepCC_FALSE@       $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     462@AMDEP_TRUE@@am__fastdepCC_FALSE@       DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
    445463@am__fastdepCC_FALSE@   $(COMPILE) -c $<
    446464
     
    449467@am__fastdepCC_TRUE@    then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
    450468@AMDEP_TRUE@@am__fastdepCC_FALSE@       source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
    451 @AMDEP_TRUE@@am__fastdepCC_FALSE@       depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
    452 @AMDEP_TRUE@@am__fastdepCC_FALSE@       $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     469@AMDEP_TRUE@@am__fastdepCC_FALSE@       DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
    453470@am__fastdepCC_FALSE@   $(COMPILE) -c `$(CYGPATH_W) '$<'`
    454471
     
    457474@am__fastdepCC_TRUE@    then mv -f "$(DEPDIR)/loadavg-getloadavg$U.Tpo" "$(DEPDIR)/loadavg-getloadavg$U.Po"; else rm -f "$(DEPDIR)/loadavg-getloadavg$U.Tpo"; exit 1; fi
    458475@AMDEP_TRUE@@am__fastdepCC_FALSE@       source='getloadavg$U.c' object='loadavg-getloadavg$U.o' libtool=no @AMDEPBACKSLASH@
    459 @AMDEP_TRUE@@am__fastdepCC_FALSE@       depfile='$(DEPDIR)/loadavg-getloadavg$U.Po' tmpdepfile='$(DEPDIR)/loadavg-getloadavg$U.TPo' @AMDEPBACKSLASH@
    460 @AMDEP_TRUE@@am__fastdepCC_FALSE@       $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     476@AMDEP_TRUE@@am__fastdepCC_FALSE@       DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
    461477@am__fastdepCC_FALSE@   $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(loadavg_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o loadavg-getloadavg$U.o `test -f 'getloadavg$U.c' || echo '$(srcdir)/'`getloadavg$U.c
    462478
     
    465481@am__fastdepCC_TRUE@    then mv -f "$(DEPDIR)/loadavg-getloadavg$U.Tpo" "$(DEPDIR)/loadavg-getloadavg$U.Po"; else rm -f "$(DEPDIR)/loadavg-getloadavg$U.Tpo"; exit 1; fi
    466482@AMDEP_TRUE@@am__fastdepCC_FALSE@       source='getloadavg$U.c' object='loadavg-getloadavg$U.obj' libtool=no @AMDEPBACKSLASH@
    467 @AMDEP_TRUE@@am__fastdepCC_FALSE@       depfile='$(DEPDIR)/loadavg-getloadavg$U.Po' tmpdepfile='$(DEPDIR)/loadavg-getloadavg$U.TPo' @AMDEPBACKSLASH@
    468 @AMDEP_TRUE@@am__fastdepCC_FALSE@       $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     483@AMDEP_TRUE@@am__fastdepCC_FALSE@       DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
    469484@am__fastdepCC_FALSE@   $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(loadavg_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o loadavg-getloadavg$U.obj `if test -f 'getloadavg$U.c'; then $(CYGPATH_W) 'getloadavg$U.c'; else $(CYGPATH_W) '$(srcdir)/getloadavg$U.c'; fi`
    470485alloca_.c: alloca.c $(ANSI2KNR)
     
    514529signame_.c: signame.c $(ANSI2KNR)
    515530        $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/signame.c; then echo $(srcdir)/signame.c; else echo signame.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@
     531strcache_.c: strcache.c $(ANSI2KNR)
     532        $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/strcache.c; then echo $(srcdir)/strcache.c; else echo strcache.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@
    516533variable_.c: variable.c $(ANSI2KNR)
    517534        $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/variable.c; then echo $(srcdir)/variable.c; else echo variable.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@
    518535version_.c: version.c $(ANSI2KNR)
    519536        $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/version.c; then echo $(srcdir)/version.c; else echo version.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@
     537vmsjobs_.c: vmsjobs.c $(ANSI2KNR)
     538        $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/vmsjobs.c; then echo $(srcdir)/vmsjobs.c; else echo vmsjobs.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@
    520539vpath_.c: vpath.c $(ANSI2KNR)
    521540        $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/vpath.c; then echo $(srcdir)/vpath.c; else echo vpath.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@
     
    526545main_.$(OBJEXT) misc_.$(OBJEXT) read_.$(OBJEXT) remake_.$(OBJEXT) \
    527546remote-cstms_.$(OBJEXT) remote-stub_.$(OBJEXT) rule_.$(OBJEXT) \
    528 signame_.$(OBJEXT) variable_.$(OBJEXT) version_.$(OBJEXT) \
    529 vpath_.$(OBJEXT) : $(ANSI2KNR)
     547signame_.$(OBJEXT) strcache_.$(OBJEXT) variable_.$(OBJEXT) \
     548version_.$(OBJEXT) vmsjobs_.$(OBJEXT) vpath_.$(OBJEXT) : $(ANSI2KNR)
    530549uninstall-info-am:
    531550install-man1: $(man1_MANS) $(man_MANS)
    532551        @$(NORMAL_INSTALL)
    533         $(mkdir_p) $(DESTDIR)$(man1dir)
     552        test -z "$(man1dir)" || $(mkdir_p) "$(DESTDIR)$(man1dir)"
    534553        @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
    535554        l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
     
    550569          inst=`echo $$inst | sed -e 's/^.*\///'`; \
    551570          inst=`echo $$inst | sed '$(transform)'`.$$ext; \
    552           echo " $(INSTALL_DATA) $$file $(DESTDIR)$(man1dir)/$$inst"; \
    553           $(INSTALL_DATA) $$file $(DESTDIR)$(man1dir)/$$inst; \
     571          echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
     572          $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst"; \
    554573        done
    555574uninstall-man1:
     
    571590          inst=`echo $$inst | sed -e 's/^.*\///'`; \
    572591          inst=`echo $$inst | sed '$(transform)'`.$$ext; \
    573           echo " rm -f $(DESTDIR)$(man1dir)/$$inst"; \
    574           rm -f $(DESTDIR)$(man1dir)/$$inst; \
     592          echo " rm -f '$(DESTDIR)$(man1dir)/$$inst'"; \
     593          rm -f "$(DESTDIR)$(man1dir)/$$inst"; \
    575594        done
    576595
     
    582601# (2) otherwise, pass the desired values on the `make' command line.
    583602$(RECURSIVE_TARGETS):
    584         @set fnord $$MAKEFLAGS; amf=$$2; \
     603        @failcom='exit 1'; \
     604        for f in x $$MAKEFLAGS; do \
     605          case $$f in \
     606            *=* | --[!k]*);; \
     607            *k*) failcom='fail=yes';; \
     608          esac; \
     609        done; \
    585610        dot_seen=no; \
    586611        target=`echo $@ | sed s/-recursive//`; \
     
    594619          fi; \
    595620          (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
    596            || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
     621          || eval $$failcom; \
    597622        done; \
    598623        if test "$$dot_seen" = "no"; then \
     
    602627mostlyclean-recursive clean-recursive distclean-recursive \
    603628maintainer-clean-recursive:
    604         @set fnord $$MAKEFLAGS; amf=$$2; \
     629        @failcom='exit 1'; \
     630        for f in x $$MAKEFLAGS; do \
     631          case $$f in \
     632            *=* | --[!k]*);; \
     633            *k*) failcom='fail=yes';; \
     634          esac; \
     635        done; \
    605636        dot_seen=no; \
    606637        case "$@" in \
     
    623654          fi; \
    624655          (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
    625            || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
     656          || eval $$failcom; \
    626657        done && test -z "$$fail"
    627658tags-recursive:
     
    648679        tags=; \
    649680        here=`pwd`; \
    650         if (etags --etags-include --version) >/dev/null 2>&1; then \
     681        if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
    651682          include_option=--etags-include; \
     683          empty_fix=.; \
    652684        else \
    653685          include_option=--include; \
     686          empty_fix=; \
    654687        fi; \
    655688        list='$(SUBDIRS)'; for subdir in $$list; do \
    656689          if test "$$subdir" = .; then :; else \
    657             test -f $$subdir/TAGS && \
     690            test ! -f $$subdir/TAGS || \
    658691              tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
    659692          fi; \
     
    665698          $(AWK) '    { files[$$0] = 1; } \
    666699               END { for (i in files) print i; }'`; \
    667         test -z "$(ETAGS_ARGS)$$tags$$unique" \
    668           || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
    669              $$tags $$unique
     700        if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
     701          test -n "$$unique" || unique=$$empty_fix; \
     702          $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
     703            $$tags $$unique; \
     704        fi
    670705ctags: CTAGS
    671706CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
     
    700735        $(am__remove_distdir)
    701736        mkdir $(distdir)
    702         $(mkdir_p) $(distdir)/. $(distdir)/config $(distdir)/po
     737        $(mkdir_p) $(distdir)/config $(distdir)/po
    703738        @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
    704739        topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
     
    727762          fi; \
    728763        done
    729         list='$(SUBDIRS)'; for subdir in $$list; do \
     764        list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
    730765          if test "$$subdir" = .; then :; else \
    731766            test -d "$(distdir)/$$subdir" \
    732             || mkdir "$(distdir)/$$subdir" \
     767            || $(mkdir_p) "$(distdir)/$$subdir" \
    733768            || exit 1; \
     769            distdir=`$(am__cd) $(distdir) && pwd`; \
     770            top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
    734771            (cd $$subdir && \
    735772              $(MAKE) $(AM_MAKEFLAGS) \
    736                 top_distdir="../$(top_distdir)" \
    737                 distdir="../$(distdir)/$$subdir" \
     773                top_distdir="$$top_distdir" \
     774                distdir="$$distdir/$$subdir" \
    738775                distdir) \
    739776              || exit 1; \
     
    749786        || chmod -R a+r $(distdir)
    750787dist-gzip: distdir
    751         $(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
     788        tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
    752789        $(am__remove_distdir)
    753790dist-bzip2: distdir
    754         $(AMTAR) chof - $(distdir) | bzip2 -9 -c >$(distdir).tar.bz2
     791        tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
    755792        $(am__remove_distdir)
    756793
    757794dist-tarZ: distdir
    758         $(AMTAR) chof - $(distdir) | compress -c >$(distdir).tar.Z
     795        tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
    759796        $(am__remove_distdir)
    760797
     
    769806
    770807dist dist-all: distdir
    771         $(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
    772         $(AMTAR) chof - $(distdir) | bzip2 -9 -c >$(distdir).tar.bz2
     808        tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
     809        tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
    773810        $(am__remove_distdir)
    774811
     
    779816        case '$(DIST_ARCHIVES)' in \
    780817        *.tar.gz*) \
    781           GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(AMTAR) xf - ;;\
     818          GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\
    782819        *.tar.bz2*) \
    783           bunzip2 -c $(distdir).tar.bz2 | $(AMTAR) xf - ;;\
     820          bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\
    784821        *.tar.Z*) \
    785           uncompress -c $(distdir).tar.Z | $(AMTAR) xf - ;;\
     822          uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
    786823        *.shar.gz*) \
    787           GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | unshar ;;\
     824          GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\
    788825        *.zip*) \
    789826          unzip $(distdir).zip ;;\
     
    808845          && chmod -R a-w "$$dc_install_base" \
    809846          && ({ \
    810                (cd ../.. && $(mkdir_p) "$$dc_destdir") \
     847               (cd ../.. && umask 077 && mkdir "$$dc_destdir") \
    811848               && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
    812849               && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
     
    841878               exit 1; } >&2
    842879check-am: all-am
     880        $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS)
    843881        $(MAKE) $(AM_MAKEFLAGS) check-local
    844882check: check-recursive
     
    846884installdirs: installdirs-recursive
    847885installdirs-am:
    848         $(mkdir_p) $(DESTDIR)$(bindir) $(DESTDIR)$(man1dir)
     886        for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)"; do \
     887          test -z "$$dir" || $(mkdir_p) "$$dir"; \
     888        done
    849889install: install-recursive
    850890install-exec: install-exec-recursive
     
    866906
    867907distclean-generic:
    868         -rm -f $(CONFIG_CLEAN_FILES)
     908        -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
     909        -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
    869910
    870911maintainer-clean-generic:
     
    873914clean: clean-recursive
    874915
    875 clean-am: clean-binPROGRAMS clean-generic clean-krextra \
    876         clean-noinstPROGRAMS mostlyclean-am
     916clean-am: clean-binPROGRAMS clean-checkPROGRAMS clean-generic \
     917        clean-krextra mostlyclean-am
    877918
    878919distclean: distclean-recursive
     
    927968
    928969.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am am--refresh check \
    929         check-am check-local clean clean-binPROGRAMS clean-generic \
    930         clean-krextra clean-noinstPROGRAMS clean-recursive ctags \
    931         ctags-recursive dist dist-all dist-bzip2 dist-gzip dist-shar \
    932         dist-tarZ dist-zip distcheck distclean distclean-compile \
    933         distclean-generic distclean-hdr distclean-recursive \
    934         distclean-tags distcleancheck distdir distuninstallcheck dvi \
    935         dvi-am html html-am info info-am install install-am \
    936         install-binPROGRAMS install-data install-data-am install-exec \
    937         install-exec-am install-exec-local install-info \
    938         install-info-am install-man install-man1 install-strip \
    939         installcheck installcheck-am installdirs installdirs-am \
    940         maintainer-clean maintainer-clean-generic \
    941         maintainer-clean-recursive mostlyclean mostlyclean-compile \
    942         mostlyclean-generic mostlyclean-kr mostlyclean-recursive pdf \
    943         pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \
    944         uninstall-binPROGRAMS uninstall-info-am uninstall-man \
    945         uninstall-man1
     970        check-am check-local clean clean-binPROGRAMS \
     971        clean-checkPROGRAMS clean-generic clean-krextra \
     972        clean-recursive ctags ctags-recursive dist dist-all dist-bzip2 \
     973        dist-gzip dist-hook dist-shar dist-tarZ dist-zip distcheck \
     974        distclean distclean-compile distclean-generic distclean-hdr \
     975        distclean-recursive distclean-tags distcleancheck distdir \
     976        distuninstallcheck dvi dvi-am html html-am info info-am \
     977        install install-am install-binPROGRAMS install-data \
     978        install-data-am install-exec install-exec-am \
     979        install-exec-local install-info install-info-am install-man \
     980        install-man1 install-strip installcheck installcheck-am \
     981        installdirs installdirs-am maintainer-clean \
     982        maintainer-clean-generic maintainer-clean-recursive \
     983        mostlyclean mostlyclean-compile mostlyclean-generic \
     984        mostlyclean-kr mostlyclean-recursive pdf pdf-am ps ps-am tags \
     985        tags-recursive uninstall uninstall-am uninstall-binPROGRAMS \
     986        uninstall-info-am uninstall-man uninstall-man1
    946987
    947988
     
    9891030.PHONY: check-loadavg check-regression
    9901031
    991 check-loadavg: loadavg
     1032check-loadavg: loadavg$(EXEEXT)
    9921033        @echo The system uptime program believes the load average to be:
    9931034        -uptime
    9941035        @echo The GNU load average checking code thinks:
    995         -./loadavg
     1036        -./loadavg$(EXEEXT)
    9961037
    9971038check-regression:
     
    10171058# --------------- Maintainer's Section
    10181059
     1060# Tell automake that I haven't forgotten about this file and it will be
     1061# created before we build a distribution (see maintMakefile in the CVS
     1062# distribution).
     1063
     1064README:
     1065
    10191066@MAINT_MAKEFILE@
    10201067# Tell versions [3.59,3.63) of GNU make to not export all variables.
  • vendor/gnumake/current/NEWS

    r280 r501  
    11GNU make NEWS                                               -*-indented-text-*-
    22  History of user-visible changes.
    3   13 May 2005
    4 
    5 Copyright (C) 2002,2003,2004,2005  Free Software Foundation, Inc.
    6 See the end for copying conditions.
     3  1 April 2006
     4
     5See the end of this file for copyrights and conditions.
    76
    87All changes mentioned here are more fully described in the GNU make
     
    1211
    1312
    14 Version 3.81beta3
     13Version 3.81
    1514
    1615* GNU make is ported to OS/2.
    1716
    18 * GNU make is ported to MinGW.
     17* GNU make is ported to MinGW.  The MinGW build is only supported by
     18  the build_w32.bat batch file; see the file README.W32 for more
     19  details.
     20
     21* WARNING: Future backward-incompatibility!
     22  Up to and including this release, the '$?' variable does not contain
     23  any prerequisite that does not exist, even though that prerequisite
     24  might have caused the target to rebuild.  Starting with the _next_
     25  release of GNU make, '$?' will contain all prerequisites that caused
     26  the target to be considered out of date.  See this Savannah bug:
     27  http://savannah.gnu.org/bugs/index.php?func=detailitem&item_id=16051
    1928
    2029* WARNING: Backward-incompatibility!
    2130  GNU make now implements a generic "second expansion" feature on the
    22   prerequisites of both explicit and implicit (pattern) rules.  After
    23   all rules have been parsed the prerequisites are expanded again, this
    24   time with all the automatic variables in scope.  This means that in
    25   addition to using standard SysV $$@ in prerequisites lists, you can
    26   also use complex functions such as $$(notdir $$@) etc.  This behavior
    27   applies to implicit rules, as well, where the second expansion occurs
    28   after the rule is matched.  However, this means that you need to
     31  prerequisites of both explicit and implicit (pattern) rules.  In order
     32  to enable this feature, the special target '.SECONDEXPANSION' must be
     33  defined before the first target which takes advantage of it.  If this
     34  feature is enabled then after all rules have been parsed the
     35  prerequisites are expanded again, this time with all the automatic
     36  variables in scope.  This means that in addition to using standard
     37  SysV $$@ in prerequisites lists, you can also use complex functions
     38  such as $$(notdir $$@) etc.  This behavior applies to implicit rules,
     39  as well, where the second expansion occurs when the rule is matched.
     40  However, this means that when '.SECONDEXPANSION' is enabled you must
    2941  double-quote any "$" in your filenames; instead of "foo: boo$$bar" you
    30   must write "foo: foo$$$$bar"
     42  now must write "foo: foo$$$$bar".  Note that the SysV $$@ etc. feature,
     43  which used to be available by default, is now ONLY available when the
     44  .SECONDEXPANSION target is defined.  If your makefiles take advantage
     45  of this SysV feature you will need to update them.
     46
     47* WARNING: Backward-incompatibility!
     48  In order to comply with POSIX, the way in which GNU make processes
     49  backslash-newline sequences in command strings has changed.  If your
     50  makefiles use backslash-newline sequences inside of single-quoted
     51  strings in command scripts you will be impacted by this change.  See
     52  the GNU make manual subsection "Splitting Command Lines" (node
     53  "Splitting Lines"), in section "Command Syntax", chapter "Writing the
     54  Commands in Rules", for details.
     55
     56* WARNING: Backward-incompatibility!
     57  Some previous versions of GNU make had a bug where "#" in a function
     58  invocation such as $(shell ...) was treated as a make comment.  A
     59  workaround was to escape these with backslashes.  This bug has been
     60  fixed: if your makefile uses "\#" in a function invocation the
     61  backslash is now preserved, so you'll need to remove it.
    3162
    3263* New command-line option: -L (--check-symlink-times).  On systems that
     
    3667  always has: use the modification time of the actual target file only.
    3768
    38 * The "else" conditional line can now be followed by any other legal
     69* The "else" conditional line can now be followed by any other valid
    3970  conditional on the same line: this does not increase the depth of the
    40   conditional nesting.
     71  conditional nesting, so only one "endif" is required to close the
     72  conditional.
    4173
    4274* All pattern-specific variables that match a given target are now used
     
    5688
    5789* New special variables available in this release:
     90   - .INCLUDE_DIRS: Expands to a list of directories that make searches
     91     for included makefiles.
    5892   - .FEATURES: Contains a list of special features available in this
    5993     version of GNU make.
    6094   - .DEFAULT_GOAL: Set the name of the default goal make will
    6195     use if no goals are provided on the command line.
     96   - MAKE_RESTARTS: If set, then this is the number of times this
     97     instance of make has been restarted (see "How Makefiles Are Remade"
     98     in the manual).
    6299   - New automatic variable: $| (added in 3.80, actually): contains all
    63100     the order-only prerequisites defined for the target.
     
    72109     provided.  The canonical pathname is the absolute pathname, with
    73110     all symbolic links resolved as well.
    74    - $(info ...) prints informative messages to stdout.  No makefile
    75      name or line number info, etc. is printed, just the message.
     111   - $(info ...) prints its arguments to stdout.  No makefile name or
     112     line number info, etc. is printed.
     113   - $(flavor ...) returns the flavor of a variable.
     114   - $(or ...) provides a short-circuiting OR conditional: each argument
     115     is expanded.  The first true (non-empty) argument is returned; no
     116     further arguments are expanded.  Expands to empty if there are no
     117     true arguments.
     118   - $(and ...) provides a short-circuiting AND conditional: each
     119     argument is expanded.  The first false (empty) argument is
     120     returned; no further arguments are expanded.  Expands to the last
     121     argument if all arguments are true.
    76122
    77123* Changes made for POSIX compatibility:
     
    82128     it will be set in the environment, just as before.
    83129
    84 * On DOS and MS Windows systems, explicitly setting SHELL to a pathname
    85   ending in "cmd" or "cmd.exe" (case-insensitive) will force GNU make to
    86   use the DOS command interpreter in batch mode even if a UNIX-like
    87   shell could be found on the system.
    88 
    89 * Updated to autoconf 2.59, automake 1.8.2, and gettext 0.14.1.  Users
     130* On MS Windows systems, explicitly setting SHELL to a pathname ending
     131  in "cmd" or "cmd.exe" (case-insensitive) will force GNU make to use
     132  the DOS command interpreter in batch mode even if a UNIX-like shell
     133  could be found on the system.
     134
     135* On VMS there is now support for case-sensitive filesystems such as ODS5.
     136  See the readme.vms file for information.
     137
     138* Parallel builds (-jN) no longer require a working Bourne shell on
     139  Windows platforms.  They work even with the stock Windows shells, such
     140  as cmd.exe and command.com.
     141
     142* Updated to autoconf 2.59, automake 1.9.5, and gettext 0.14.1.  Users
    90143  should not be impacted.
    91144
     
    93146  Belarusian, Finnish, Kinyarwandan, and Irish.  Many updated
    94147  translations.
     148
     149A complete list of bugs fixed in this version is available here:
     150
     151  http://savannah.gnu.org/bugs/index.php?group=make&report_id=111&fix_release_id=103
    95152
    96153
     
    172229
    173230* Updated to autoconf 2.54 and automake 1.7.  Users should not be impacted.
     231
     232A complete list of bugs fixed in this version is available here:
     233
     234  http://savannah.gnu.org/bugs/index.php?group=make&report_id=111&fix_release_id=102
     235
    174236
    175237
     
    9801042
    9811043
    982 ----------------------------------------------------------------------
    983 Copyright information:
    984 
    985    Permission is granted to anyone to make or distribute verbatim copies
    986    of this document as received, in any medium, provided that the
    987    copyright notice and this permission notice are preserved, thus
    988    giving the recipient permission to redistribute in turn.
    989 
    990    Permission is granted to distribute modified versions of this
    991    document, or of portions of it, under the above conditions, provided
    992    also that they carry prominent notices stating who last changed them.
     1044-------------------------------------------------------------------------------
     1045Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
     10461998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software
     1047Foundation, Inc.
     1048This file is part of GNU Make.
     1049
     1050GNU Make is free software; you can redistribute it and/or modify it under the
     1051terms of the GNU General Public License as published by the Free Software
     1052Foundation; either version 2, or (at your option) any later version.
     1053
     1054GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     1055WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     1056A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     1057
     1058You should have received a copy of the GNU General Public License along with
     1059GNU Make; see the file COPYING.  If not, write to the Free Software
     1060Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  • vendor/gnumake/current/NMakefile

    r152 r501  
    1 # NOTE: If you have no `make' program at all to process this makefile, run
    2 # `build_w32.bat' instead.
    3 #
    4 # Copyright (C) 1988,89,91,92,93,94,95,96,97 Free Software Foundation, Inc.
     1# -*-Makefile-*- to build GNU make with nmake
     2#
     3# NOTE: If you have no 'make' program at all to process this makefile,
     4# run 'build_w32.bat' instead.
     5#
     6# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
     7# 2006 Free Software Foundation, Inc.
    58# This file is part of GNU Make.
    69#
    7 # GNU Make is free software; you can redistribute it and/or modify
    8 # it under the terms of the GNU General Public License as published by
    9 # the Free Software Foundation; either version 2, or (at your option)
    10 # any later version.
    11 #
    12 # GNU Make is distributed in the hope that it will be useful,
    13 # but WITHOUT ANY WARRANTY; without even the implied warranty of
    14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    15 # GNU General Public License for more details.
    16 #
    17 # You should have received a copy of the GNU General Public License
    18 # along with GNU Make; see the file COPYING.  If not, write to
    19 # the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    20 # Boston, MA 02111-1307, USA.
    21 
    22 #
    23 #       NMakefile for GNU Make
    24 #
     10# GNU Make is free software; you can redistribute it and/or modify it under the
     11# terms of the GNU General Public License as published by the Free Software
     12# Foundation; either version 2, or (at your option) any later version.
     13#
     14# GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     15# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     16# A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     17#
     18# You should have received a copy of the GNU General Public License along with
     19# GNU Make; see the file COPYING.  If not, write to the Free Software
     20# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
    2521
    2622LINK = link
    2723CC = cl
     24MAKE = nmake
    2825
    2926OUTDIR=.
     
    3128SUBPROC_MAKEFILE=NMakefile
    3229
    33 CFLAGS_any = /nologo /MT /W3 /GX /Zi /YX /I . /I glob /I w32/include /D WIN32 /D WINDOWS32 /D _CONSOLE /D HAVE_CONFIG_H
     30CFLAGS_any = /nologo /MT /W4 /GX /Zi /YX /I . /I glob /I w32/include /D WIN32 /D WINDOWS32 /D _CONSOLE /D HAVE_CONFIG_H
    3431CFLAGS_debug = $(CFLAGS_any) /Od /D DEBUG /D _DEBUG /FR.\WinDebug/ /Fp.\WinDebug/make.pch /Fo.\WinDebug/ /Fd.\WinDebug/make.pdb
    3532CFLAGS_release = $(CFLAGS_any) /O2 /D NDEBUG /FR.\WinRel/ /Fp.\WinRel/make.pch /Fo.\WinRel/
     
    9996        $(OUTDIR)/rule.obj \
    10097        $(OUTDIR)/signame.obj \
     98        $(OUTDIR)/strcache.obj \
    10199        $(OUTDIR)/variable.obj \
    102100        $(OUTDIR)/version.obj \
     
    126124# --------------- DEPENDENCIES
    127125#
    128 # dummy
    129 # dummy
    130 ar.o : \
    131  ar.c make.h config.h \
    132  getopt.h \
    133  gettext.h filedef.h \
    134  hash.h dep.h
    135 arscan.o : \
    136  arscan.c make.h config.h \
    137  getopt.h \
    138  gettext.h \
    139 
    140 commands.o : \
    141  commands.c make.h config.h \
    142  getopt.h \
    143  gettext.h dep.h \
    144  filedef.h hash.h variable.h job.h \
    145  commands.h
    146 default.o : \
    147  default.c make.h config.h \
    148  getopt.h \
    149  gettext.h filedef.h \
    150  hash.h variable.h rule.h dep.h job.h \
    151  commands.h
    152 dir.o : \
    153  dir.c make.h config.h \
    154  getopt.h \
    155  gettext.h hash.h \
    156 
    157 expand.o : \
    158  expand.c make.h config.h \
    159  getopt.h \
    160  gettext.h \
    161  filedef.h hash.h job.h \
    162  commands.h variable.h rule.h
    163 file.o : \
    164  file.c make.h config.h \
    165  getopt.h \
    166  gettext.h \
    167  dep.h filedef.h hash.h job.h \
    168  commands.h variable.h \
    169  debug.h
    170 function.o : \
    171  function.c make.h config.h \
    172  getopt.h \
    173  gettext.h filedef.h \
    174  hash.h variable.h dep.h job.h \
    175  commands.h debug.h
    176 getopt.o : \
    177  getopt.c config.h \
    178 
    179 getopt1.o : \
    180  getopt1.c config.h getopt.h \
    181 
    182 hash.o : \
    183  hash.c make.h config.h \
    184  getopt.h \
    185  gettext.h hash.h
    186 implicit.o : \
    187  implicit.c make.h config.h \
    188  getopt.h \
    189  gettext.h filedef.h \
    190  hash.h rule.h dep.h debug.h
    191 job.o : \
    192  job.c make.h config.h \
    193  getopt.h \
    194  gettext.h \
    195  job.h \
    196  debug.h filedef.h hash.h commands.h \
    197  variable.h \
    198 
    199 loadavg-getloadavg.o : \
    200  getloadavg.c config.h \
    201  make.h \
    202  getopt.h \
    203  gettext.h \
    204 
    205 main.o : \
    206  main.c make.h config.h \
    207  getopt.h \
    208  gettext.h dep.h \
    209  filedef.h hash.h variable.h job.h \
    210  commands.h rule.h debug.h \
    211 
    212 misc.o : \
    213  misc.c make.h config.h \
    214  getopt.h \
    215  gettext.h dep.h \
    216  debug.h
    217 read.o : \
    218  read.c make.h config.h \
    219  getopt.h \
    220  gettext.h \
    221  dep.h filedef.h hash.h \
    222  job.h commands.h \
    223  variable.h rule.h debug.h
    224 remake.o : \
    225  remake.c make.h config.h \
    226  getopt.h \
    227  gettext.h filedef.h \
    228  hash.h job.h \
    229  commands.h dep.h variable.h debug.h
    230 # dummy
    231 remote-stub.o : \
    232  remote-stub.c make.h config.h \
    233  getopt.h \
    234  gettext.h filedef.h \
    235  hash.h job.h \
    236  commands.h
    237 rule.o : \
    238  rule.c make.h config.h \
    239  getopt.h \
    240  gettext.h dep.h \
    241  filedef.h hash.h job.h \
    242  commands.h variable.h rule.h
    243 signame.o : \
    244  signame.c make.h config.h \
    245  getopt.h \
    246  gettext.h
    247 variable.o : \
    248  variable.c make.h config.h \
    249  getopt.h \
    250  gettext.h dep.h \
    251  filedef.h hash.h job.h \
    252  commands.h variable.h rule.h
    253 version.o : \
    254  version.c config.h
    255 vpath.o : \
    256  vpath.c make.h config.h \
    257  getopt.h \
    258  gettext.h filedef.h \
    259  hash.h variable.h
     126
     127# .deps/alloca.Po
     128# dummy
     129
     130# .deps/ar.Po
     131ar.o ar.o: ar.c make.h config.h \
     132  getopt.h \
     133  gettext.h filedef.h hash.h dep.h \
     134
     135# .deps/arscan.Po
     136arscan.o arscan.o: arscan.c make.h config.h \
     137  getopt.h \
     138  gettext.h \
     139
     140# .deps/commands.Po
     141commands.o commands.o: commands.c make.h config.h \
     142  getopt.h \
     143  gettext.h dep.h filedef.h hash.h variable.h \
     144  job.h commands.h
     145
     146# .deps/default.Po
     147default.o default.o: default.c make.h config.h \
     148  getopt.h \
     149  gettext.h filedef.h hash.h variable.h rule.h \
     150  dep.h job.h commands.h
     151
     152# .deps/dir.Po
     153dir.o dir.o: dir.c make.h config.h \
     154  getopt.h \
     155  gettext.h hash.h \
     156
     157# .deps/expand.Po
     158expand.o expand.o: expand.c make.h config.h \
     159  getopt.h \
     160  gettext.h filedef.h hash.h \
     161  job.h commands.h \
     162  variable.h rule.h
     163
     164# .deps/file.Po
     165file.o file.o: file.c make.h config.h \
     166  getopt.h \
     167  gettext.h dep.h filedef.h \
     168  hash.h job.h commands.h \
     169  variable.h debug.h
     170
     171# .deps/function.Po
     172function.o function.o: function.c make.h config.h \
     173  getopt.h \
     174  gettext.h filedef.h hash.h variable.h dep.h \
     175  job.h commands.h debug.h
     176
     177# .deps/getloadavg.Po
     178# dummy
     179
     180# .deps/getopt.Po
     181getopt.o getopt.o: getopt.c config.h \
     182
     183# .deps/getopt1.Po
     184getopt1.o getopt1.o: getopt1.c config.h getopt.h \
     185
     186# .deps/hash.Po
     187hash.o hash.o: hash.c make.h config.h \
     188  getopt.h \
     189  gettext.h hash.h
     190
     191# .deps/implicit.Po
     192implicit.o implicit.o: implicit.c make.h config.h \
     193  getopt.h \
     194  gettext.h filedef.h hash.h rule.h dep.h debug.h \
     195  variable.h job.h \
     196  commands.h
     197
     198# .deps/job.Po
     199job.o job.o: job.c make.h config.h \
     200  getopt.h \
     201  gettext.h job.h \
     202  debug.h filedef.h hash.h \
     203  commands.h variable.h \
     204
     205# .deps/loadavg-getloadavg.Po
     206loadavg-getloadavg.o loadavg-getloadavg.o: getloadavg.c config.h \
     207  make.h \
     208  getopt.h \
     209  gettext.h \
     210
     211# .deps/main.Po
     212main.o main.o: main.c make.h config.h \
     213  getopt.h \
     214  gettext.h dep.h filedef.h hash.h variable.h \
     215  job.h commands.h rule.h \
     216  debug.h getopt.h \
     217
     218# .deps/misc.Po
     219misc.o misc.o: misc.c make.h config.h \
     220  getopt.h \
     221  gettext.h dep.h debug.h
     222
     223# .deps/read.Po
     224read.o read.o: read.c make.h config.h \
     225  getopt.h \
     226  gettext.h \
     227  dep.h filedef.h hash.h job.h \
     228  commands.h variable.h rule.h debug.h \
     229
     230# .deps/remake.Po
     231remake.o remake.o: remake.c make.h config.h \
     232  getopt.h \
     233  gettext.h filedef.h hash.h job.h \
     234  commands.h dep.h \
     235  variable.h debug.h
     236
     237# .deps/remote-cstms.Po
     238# dummy
     239
     240# .deps/remote-stub.Po
     241remote-stub.o remote-stub.o: remote-stub.c make.h config.h \
     242  getopt.h \
     243  gettext.h filedef.h hash.h job.h \
     244  commands.h
     245
     246# .deps/rule.Po
     247rule.o rule.o: rule.c make.h config.h \
     248  getopt.h \
     249  gettext.h dep.h filedef.h hash.h job.h \
     250  commands.h variable.h \
     251  rule.h
     252
     253# .deps/signame.Po
     254signame.o signame.o: signame.c make.h config.h \
     255  getopt.h \
     256  gettext.h
     257
     258# .deps/strcache.Po
     259strcache.o strcache.o: strcache.c make.h config.h \
     260  getopt.h \
     261  gettext.h hash.h
     262
     263# .deps/variable.Po
     264variable.o variable.o: variable.c make.h config.h \
     265  getopt.h \
     266  gettext.h dep.h filedef.h \
     267  hash.h job.h commands.h \
     268  variable.h rule.h
     269
     270# .deps/version.Po
     271version.o version.o: version.c config.h
     272
     273# .deps/vmsjobs.Po
     274# dummy
     275
     276# .deps/vpath.Po
     277vpath.o vpath.o: vpath.c make.h config.h \
     278  getopt.h \
     279  gettext.h filedef.h hash.h variable.h
  • vendor/gnumake/current/README

    r152 r501  
    1 This directory contains the 3.81beta1 release of GNU Make.
     1This directory contains the 3.81 release of GNU Make.
    22
    33See the file NEWS for the user-visible changes from previous releases.
     
    169169and a DOS-based tool built with DJGPP.  Please be sure you are looking
    170170at the right README!
     171
     172
     173
     174-------------------------------------------------------------------------------
     175Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
     1761998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation,
     177Inc.
     178This file is part of GNU Make.
     179
     180GNU Make is free software; you can redistribute it and/or modify it under the
     181terms of the GNU General Public License as published by the Free Software
     182Foundation; either version 2, or (at your option) any later version.
     183
     184GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     185WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     186A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     187
     188You should have received a copy of the GNU General Public License along with
     189GNU Make; see the file COPYING.  If not, write to the Free Software
     190Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  • vendor/gnumake/current/README.Amiga

    r54 r501  
    6060    Resident make Add
    6161
     62
     63
     64-------------------------------------------------------------------------------
     65Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
     662005, 2006 Free Software Foundation, Inc.
     67This file is part of GNU Make.
     68
     69GNU Make is free software; you can redistribute it and/or modify it under the
     70terms of the GNU General Public License as published by the Free Software
     71Foundation; either version 2, or (at your option) any later version.
     72
     73GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     74WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     75A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     76
     77You should have received a copy of the GNU General Public License along with
     78GNU Make; see the file COPYING.  If not, write to the Free Software
     79Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  • vendor/gnumake/current/README.DOS

    r152 r501  
    6363      directory as an argument to the batch file, like this:
    6464
    65         c:\djgpp\gnu\make-3.81beta1\configure.bat c:/djgpp/gnu/make-3.81beta1
     65        c:\djgpp\gnu\make-3.81\configure.bat c:/djgpp/gnu/make-3.81
    6666
    6767      Note the forward slashes in the source path argument: you MUST
     
    8585      need to tell Make where the sources are, like this:
    8686
    87                 make srcdir=c:/djgpp/gnu/make-3.81beta1
     87                make srcdir=c:/djgpp/gnu/make-3.81
    8888
    8989      (configure.bat will tell you this when it finishes).  You MUST
     
    322322   Enjoy,
    323323                        Eli Zaretskii <[email protected]>
     324
     325
     326
     327-------------------------------------------------------------------------------
     328Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
     3292006 Free Software Foundation, Inc.
     330This file is part of GNU Make.
     331
     332GNU Make is free software; you can redistribute it and/or modify it under the
     333terms of the GNU General Public License as published by the Free Software
     334Foundation; either version 2, or (at your option) any later version.
     335
     336GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     337WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     338A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     339
     340You should have received a copy of the GNU General Public License along with
     341GNU Make; see the file COPYING.  If not, write to the Free Software
     342Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  • vendor/gnumake/current/README.OS2

    r152 r501  
    4747
    4848 - sh compatible shell (ksh, bash, ash, but tested only with pdksh 5.2.14
    49    (release 2)
     49   release 2)
    5050   If you use pdksh it is recommended to update to 5.2.14 release 2. Older
    5151   versions may not work! You can get this version at
     
    6060 - grep
    6161 - sed
    62  - GNU make 3.79.1 (special OS/2 patched version)
     62 - GNU make 3.79.1 (special OS/2 patched version) or higher
    6363 - perl 5.005 or higher
    6464 - GNU texinfo (you can use 3.1 (gnuinfo.zip), but I recommend 4.0)
    6565
    6666If you want to recreate the configuration files (developers only!)
    67 you need also: GNU m4 1.4, autoconf 2.57, automake 1.7.2 (or compatible)
     67you need also: GNU m4 1.4, autoconf 2.59, automake 1.8.2 (or compatible)
    6868
    6969
     
    148148
    149149  export CPPFLAGS="-D__ST_MT_ERRNO__ -DNO_CMD_DEFAULT -DNO_CHDIR2"
    150   export CFLAGS="-Zomf -O2 -s -Zmt"
    151   export LDFLAGS="-Zcrtdll -Zmt -s -Zlinker /exepack:2 -Zlinker /pm:vio -Zstack 0x8000"
     150  export CFLAGS="-Zomf -O2 -Zmt"
     151  export LDFLAGS="-Zcrtdll -s -Zlinker /exepack:2 -Zlinker /pm:vio -Zstack 0x8000"
    152152  export RANLIB="echo"
    153153  ./configure --prefix=x:/usr --disable-nls
    154154  make AR=emxomfar
    155   make checks
     155  make check
    156156
    157157All tests should work fine with the exception of "default_names" which
    158158is because OS/2 file systems are not case sensitive ("makefile" and
    159159"Makefile" specify the same file).
     160
     161
     162
     163-------------------------------------------------------------------------------
     164Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
     165This file is part of GNU Make.
     166
     167GNU Make is free software; you can redistribute it and/or modify it under the
     168terms of the GNU General Public License as published by the Free Software
     169Foundation; either version 2, or (at your option) any later version.
     170
     171GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     172WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     173A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     174
     175You should have received a copy of the GNU General Public License along with
     176GNU Make; see the file COPYING.  If not, write to the Free Software
     177Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  • vendor/gnumake/current/README.W32

    r152 r501  
    1 Port of GNU make to Windows NT and Windows 95
    2 Builds natively with MSVC 2.x or MSVC 4.x compilers.
    3 Should also build fine with MSVC 5.x and 6.x (though not confirmed).
    4 
    5 This Windows 32-bit port of GNU make is maintained primarily by Rob
    6 Tulloh, who is also the author of this README.
    7 
    8 To build with nmake on Windows NT, Windows 95, or Windows 98:
    9 
    10         1. Make sure cl.exe is in your %Path%. Example:
    11 
    12                 set Path=%Path%;c:/msdev/bin
    13 
    14         2. Make sure %include% is set to msvc include directory. Example:
    15 
    16                 set include=c:/msdev/include
    17 
    18         3. Make sure %lib% is set to msvc lib directory. Example:
    19 
    20                 set lib=c:/msdev/lib
    21 
    22         4. nmake /f NMakefile
    23 
    24 
    25     A short cut to steps 1, 2, and 3 is to run VCVARS32.bat before
    26     invoking namke. For example:
    27 
    28         c:
    29         cd \msdev\bin
    30         VCVARS32.bat
    31         cd \path\to\make-3.81beta1
     1This version of GNU make has been tested on Microsoft Windows 2000/XP/2003.
     2It has also been used on Windows 95/98/NT, and on OS/2.
     3
     4It builds natively with MSVC 2.x, 4.x, 5.x, 6.x, and 2003 as well as
     5.NET 7.x and .NET 2003.
     6
     7It builds with the MinGW port of GCC 3.x (tested with GCC 3.4.2).
     8
     9The Windows 32-bit port of GNU make is maintained jointly by various
     10people.  It was originally made by Rob Tulloh.
     11
     12
     13Do this first, regardless of the build method you choose:
     14---------------------------------------------------------
     15
     16 1. At the Windows command prompt run:
     17
     18      if not exist NMakefile copy NMakefile.template NMakefile
     19      if not exist config.h copy config.h.W32 config.h
     20
     21    Then edit config.h to your liking (especially the few shell-related
     22    defines near the end, or HAVE_CASE_INSENSITIVE_FS which corresponds
     23    to './configure --enable-case-insensitive-file-system').
     24
     25
     26Using make_msvc_net2003.vcproj
     27------------------------------
     28
     29 2. Open make_msvc_net2003.vcproj in MSVS71 or MSVC71 or any compatible IDE,
     30    then build this project as usual.
     31
     32
     33Building with (MinGW-)GCC using build_w32.bat
     34---------------------------------------------
     35
     36 2. Open a W32 command prompt for your installed (MinGW-)GCC, setup a
     37    correct PATH and other environment variables for it, then execute ...
     38
     39        build_w32.bat gcc
     40
     41    This produces gnumake.exe in the current directory.
     42
     43
     44Building with (MSVC++-)cl using build_w32.bat or NMakefile
     45----------------------------------------------------------
     46
     47 2. Open a W32 command prompt for your installed (MSVC++-)cl, setup a
     48    correct PATH and other environment variables for it (usually via
     49    executing vcvars32.bat or vsvars32.bat from the cl-installation,
     50    e.g. "%VS71COMNTOOLS%vsvars32.bat"; or using a corresponding start
     51    menue entry from the cl-installation), then execute EITHER ...
     52
     53        build_w32.bat
     54
     55    (this produces WinDebug/gnumake.exe and WinRel/gnumake.exe)
     56
     57    ... OR ...
     58
    3259        nmake /f NMakefile
    3360
    34 There is a bat file (build_w32.bat) for folks who have fear of nmake.
    35 
    36 Outputs:
    37 
    38         WinDebug/make.exe
    39         WinRel/make.exe
    40 
    41 
     61    (this produces WinDebug/make.exe and WinRel/make.exe).
     62
     63
     64-------------------
    4265-- Notes/Caveats --
     66-------------------
    4367
    4468GNU make on Windows 32-bit platforms:
     
    6488        There are very few true ports of Bourne shell for NT right now.
    6589        There is a version of GNU bash available from Cygnus "Cygwin"
    66         porting effort (http://sourceware.cygnus.com/cygwin).
     90        porting effort (http://www.cygwin.com/).
    6791        Other possibilities are the MKS version of sh.exe, or building
    6892        your own with a package like NutCracker (DataFocus) or Portage
    69         (Consensys).
     93        (Consensys).  Also MinGW includes sh (http://mingw.org/).
    7094
    7195GNU make and brain-dead shells (BATCH_MODE_ONLY_SHELL):
     
    132156        specification of paths.  Make is able to figure out the intended
    133157        result and convert the paths internally to the format needed
    134         when interacting with the operating system.
     158        when interacting with the operating system, providing the path
     159        is not within quotes, e.g. "x:/test/test.c".
    135160
    136161        You are encouraged to use colon as the separator character.
     
    143168
    144169        I verified all functionality with a slightly modified version
    145         of make-test-3.81beta1 (modifications to get test suite to run
     170        of make-test-3.81 (modifications to get test suite to run
    146171        on Windows NT). All tests pass in an environment that includes
    147172        sh.exe.  Tests were performed on both Windows NT and Windows 95.
     
    168193
    169194        Unlike Unix, Windows 95/NT systems encourage pathnames which
    170         contain white space (e.g. C:\Program Files\). These sorts of pathnames
    171         are legal under Unix too, but are never encouraged. There is
    172         at least one place in make (VPATH/vpath handling) where paths
    173         containing white space will simply not work. There may be others
    174         too. I chose to not try and port make in such a way so that
    175         these sorts of paths could be handled. I offer these suggestions
    176         as workarounds:
    177 
    178                 1. Use 8.3 notation
     195        contain white space (e.g. C:\Program Files\). These sorts of
     196        pathnames are legal under Unix too, but are never encouraged.
     197        There is at least one place in make (VPATH/vpath handling) where
     198        paths containing white space will simply not work. There may be
     199        others too. I chose to not try and port make in such a way so
     200        that these sorts of paths could be handled. I offer these
     201        suggestions as workarounds:
     202
     203                1. Use 8.3 notation. i.e. "x:/long~1/", which is actually
     204                   "x:\longpathtest".  Type "dir /x" to view these filenames
     205                   within the cmd.exe shell.
    179206                2. Rename the directory so it does not contain white space.
    180207
     
    221248        related to the way VC++ 4.0 changes the case name of the pdb
    222249        filename it is passed on the command line. It seems to change
    223         the name always to to lower case. I contend that
    224         the VC++ compiler should not change the casename of files that
    225         are passed as arguments on the command line. I don't think this
    226         was a problem in MSVC 2.x, but I know it is a problem in MSVC 4.x.
     250        the name always to to lower case. I contend that the VC++
     251        compiler should not change the casename of files that are passed
     252        as arguments on the command line. I don't think this was a
     253        problem in MSVC 2.x, but I know it is a problem in MSVC 4.x.
    227254
    228255        The package builds fine on VFAT and NTFS filesystems.
     
    230257        Most all of the development I have done to date has been using
    231258        NTFS and long file names. I have not done any considerable work
    232         under VFAT. VFAT users may wish to be aware that this port
    233         of make does respect case sensitivity.
     259        under VFAT. VFAT users may wish to be aware that this port of
     260        make does respect case sensitivity.
    234261
    235262FAT:
    236263
    237         Version 3.76 added support for FAT filesystems. Make
    238         works around some difficulties with stat'ing of
    239         files and caching of filenames and directories internally.
     264        Version 3.76 added support for FAT filesystems. Make works
     265        around some difficulties with stat'ing of files and caching of
     266        filenames and directories internally.
    240267
    241268Bug reports:
     
    243270        Please submit bugs via the normal bug reporting mechanism which
    244271        is described in the GNU make manual and the base README.
     272
     273
     274-------------------------------------------------------------------------------
     275Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
     2762006 Free Software Foundation, Inc.
     277This file is part of GNU Make.
     278
     279GNU Make is free software; you can redistribute it and/or modify it under the
     280terms of the GNU General Public License as published by the Free Software
     281Foundation; either version 2, or (at your option) any later version.
     282
     283GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     284WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     285A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     286
     287You should have received a copy of the GNU General Public License along with
     288GNU Make; see the file COPYING.  If not, write to the Free Software
     289Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  • vendor/gnumake/current/README.customs

    r54 r501  
    9494
    9595  YMMV.
     96
     97
     98
     99-------------------------------------------------------------------------------
     100Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
     101Free Software Foundation, Inc.
     102This file is part of GNU Make.
     103
     104GNU Make is free software; you can redistribute it and/or modify it under the
     105terms of the GNU General Public License as published by the Free Software
     106Foundation; either version 2, or (at your option) any later version.
     107
     108GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     109WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     110A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     111
     112You should have received a copy of the GNU General Public License along with
     113GNU Make; see the file COPYING.  If not, write to the Free Software
     114Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  • vendor/gnumake/current/SMakefile

    r152 r501  
    1 # NOTE: If you have no `make' program at all to process this makefile, run
    2 # `build.sh' instead.
    3 #
    4 # Copyright (C) 1988, 89, 91, 92, 93, 94, 1995 Free Software Foundation, Inc.
     1# -*-Makefile-*- for building GNU make with smake
     2#
     3# NOTE: If you have no 'make' program at all to process this makefile,
     4# run 'build.sh' instead.
     5#
     6# Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
     7# 2005, 2006 Free Software Foundation, Inc.
    58# This file is part of GNU Make.
    69#
    7 # GNU Make is free software; you can redistribute it and/or modify
    8 # it under the terms of the GNU General Public License as published by
    9 # the Free Software Foundation; either version 2, or (at your option)
    10 # any later version.
    11 #
    12 # GNU Make is distributed in the hope that it will be useful,
    13 # but WITHOUT ANY WARRANTY; without even the implied warranty of
    14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    15 # GNU General Public License for more details.
    16 #
    17 # You should have received a copy of the GNU General Public License
    18 # along with GNU Make; see the file COPYING.  If not, write to
    19 # the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    20 # Boston, MA 02111-1307, USA.
     10# GNU Make is free software; you can redistribute it and/or modify it under the
     11# terms of the GNU General Public License as published by the Free Software
     12# Foundation; either version 2, or (at your option) any later version.
     13#
     14# GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     15# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     16# A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     17#
     18# You should have received a copy of the GNU General Public License along with
     19# GNU Make; see the file COPYING.  If not, write to the Free Software
     20# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
    2121
    2222#
     
    2525
    2626# Ultrix 2.2 make doesn't expand the value of VPATH.
    27 VPATH = /make-3.81beta1/
     27VPATH = /make-3.81/
    2828# This must repeat the value, because configure will remove `VPATH = .'.
    29 srcdir = /make-3.81beta1/
     29srcdir = /make-3.81/
    3030
    3131CC = sc
     
    126126objs = commands.o job.o dir.o file.o misc.o main.o read.o remake.o      \
    127127       rule.o implicit.o default.o variable.o expand.o function.o       \
    128        vpath.o version.o ar.o arscan.o signame.o hash.o                 \
     128       vpath.o version.o ar.o arscan.o signame.o strcache.o hash.o      \
    129129       remote-$(REMOTE).o $(GLOB) $(GETOPT) $(ALLOCA) $(extras)
    130130srcs = $(srcdir)commands.c $(srcdir)job.c $(srcdir)dir.c             \
     
    135135       $(srcdir)vpath.c $(srcdir)version.c $(srcdir)hash.c           \
    136136       $(srcdir)remote-$(REMOTE).c                                     \
    137        $(srcdir)ar.c $(srcdir)arscan.c                                \
     137       $(srcdir)ar.c $(srcdir)arscan.c $(srcdir)strcache.c              \
    138138       $(srcdir)signame.c $(srcdir)signame.h $(GETOPT_SRC)            \
    139139       $(srcdir)commands.h $(srcdir)dep.h $(srcdir)file.h            \
     
    215215# --------------- DEPENDENCIES
    216216#
     217
     218# .deps/alloca.Po
    217219# dummy
     220
     221# .deps/ar.Po
     222ar.o ar.o: ar.c make.h config.h \
     223  getopt.h \
     224  gettext.h filedef.h hash.h dep.h \
     225
     226# .deps/arscan.Po
     227arscan.o arscan.o: arscan.c make.h config.h \
     228  getopt.h \
     229  gettext.h \
     230
     231# .deps/commands.Po
     232commands.o commands.o: commands.c make.h config.h \
     233  getopt.h \
     234  gettext.h dep.h filedef.h hash.h variable.h \
     235  job.h commands.h
     236
     237# .deps/default.Po
     238default.o default.o: default.c make.h config.h \
     239  getopt.h \
     240  gettext.h filedef.h hash.h variable.h rule.h \
     241  dep.h job.h commands.h
     242
     243# .deps/dir.Po
     244dir.o dir.o: dir.c make.h config.h \
     245  getopt.h \
     246  gettext.h hash.h \
     247
     248# .deps/expand.Po
     249expand.o expand.o: expand.c make.h config.h \
     250  getopt.h \
     251  gettext.h filedef.h hash.h \
     252  job.h commands.h \
     253  variable.h rule.h
     254
     255# .deps/file.Po
     256file.o file.o: file.c make.h config.h \
     257  getopt.h \
     258  gettext.h dep.h filedef.h \
     259  hash.h job.h commands.h \
     260  variable.h debug.h
     261
     262# .deps/function.Po
     263function.o function.o: function.c make.h config.h \
     264  getopt.h \
     265  gettext.h filedef.h hash.h variable.h dep.h \
     266  job.h commands.h debug.h
     267
     268# .deps/getloadavg.Po
    218269# dummy
    219 ar.o : \
    220  ar.c make.h config.h \
    221  getopt.h \
    222  gettext.h filedef.h \
    223  hash.h dep.h
    224 arscan.o : \
    225  arscan.c make.h config.h \
    226  getopt.h \
    227  gettext.h \
    228 
    229 commands.o : \
    230  commands.c make.h config.h \
    231  getopt.h \
    232  gettext.h dep.h \
    233  filedef.h hash.h variable.h job.h \
    234  commands.h
    235 default.o : \
    236  default.c make.h config.h \
    237  getopt.h \
    238  gettext.h filedef.h \
    239  hash.h variable.h rule.h dep.h job.h \
    240  commands.h
    241 dir.o : \
    242  dir.c make.h config.h \
    243  getopt.h \
    244  gettext.h hash.h \
    245 
    246 expand.o : \
    247  expand.c make.h config.h \
    248  getopt.h \
    249  gettext.h \
    250  filedef.h hash.h job.h \
    251  commands.h variable.h rule.h
    252 file.o : \
    253  file.c make.h config.h \
    254  getopt.h \
    255  gettext.h \
    256  dep.h filedef.h hash.h job.h \
    257  commands.h variable.h \
    258  debug.h
    259 function.o : \
    260  function.c make.h config.h \
    261  getopt.h \
    262  gettext.h filedef.h \
    263  hash.h variable.h dep.h job.h \
    264  commands.h debug.h
    265 getopt.o : \
    266  getopt.c config.h \
    267 
    268 getopt1.o : \
    269  getopt1.c config.h getopt.h \
    270 
    271 hash.o : \
    272  hash.c make.h config.h \
    273  getopt.h \
    274  gettext.h hash.h
    275 implicit.o : \
    276  implicit.c make.h config.h \
    277  getopt.h \
    278  gettext.h filedef.h \
    279  hash.h rule.h dep.h debug.h
    280 job.o : \
    281  job.c make.h config.h \
    282  getopt.h \
    283  gettext.h \
    284  job.h \
    285  debug.h filedef.h hash.h commands.h \
    286  variable.h \
    287 
    288 loadavg-getloadavg.o : \
    289  getloadavg.c config.h \
    290  make.h \
    291  getopt.h \
    292  gettext.h \
    293 
    294 main.o : \
    295  main.c make.h config.h \
    296  getopt.h \
    297  gettext.h dep.h \
    298  filedef.h hash.h variable.h job.h \
    299  commands.h rule.h debug.h \
    300 
    301 misc.o : \
    302  misc.c make.h config.h \
    303  getopt.h \
    304  gettext.h dep.h \
    305  debug.h
    306 read.o : \
    307  read.c make.h config.h \
    308  getopt.h \
    309  gettext.h \
    310  dep.h filedef.h hash.h \
    311  job.h commands.h \
    312  variable.h rule.h debug.h
    313 remake.o : \
    314  remake.c make.h config.h \
    315  getopt.h \
    316  gettext.h filedef.h \
    317  hash.h job.h \
    318  commands.h dep.h variable.h debug.h
     270
     271# .deps/getopt.Po
     272getopt.o getopt.o: getopt.c config.h \
     273
     274# .deps/getopt1.Po
     275getopt1.o getopt1.o: getopt1.c config.h getopt.h \
     276
     277# .deps/hash.Po
     278hash.o hash.o: hash.c make.h config.h \
     279  getopt.h \
     280  gettext.h hash.h
     281
     282# .deps/implicit.Po
     283implicit.o implicit.o: implicit.c make.h config.h \
     284  getopt.h \
     285  gettext.h filedef.h hash.h rule.h dep.h debug.h \
     286  variable.h job.h \
     287  commands.h
     288
     289# .deps/job.Po
     290job.o job.o: job.c make.h config.h \
     291  getopt.h \
     292  gettext.h job.h \
     293  debug.h filedef.h hash.h \
     294  commands.h variable.h \
     295
     296# .deps/loadavg-getloadavg.Po
     297loadavg-getloadavg.o loadavg-getloadavg.o: getloadavg.c config.h \
     298  make.h \
     299  getopt.h \
     300  gettext.h \
     301
     302# .deps/main.Po
     303main.o main.o: main.c make.h config.h \
     304  getopt.h \
     305  gettext.h dep.h filedef.h hash.h variable.h \
     306  job.h commands.h rule.h \
     307  debug.h getopt.h \
     308
     309# .deps/misc.Po
     310misc.o misc.o: misc.c make.h config.h \
     311  getopt.h \
     312  gettext.h dep.h debug.h
     313
     314# .deps/read.Po
     315read.o read.o: read.c make.h config.h \
     316  getopt.h \
     317  gettext.h \
     318  dep.h filedef.h hash.h job.h \
     319  commands.h variable.h rule.h debug.h \
     320
     321# .deps/remake.Po
     322remake.o remake.o: remake.c make.h config.h \
     323  getopt.h \
     324  gettext.h filedef.h hash.h job.h \
     325  commands.h dep.h \
     326  variable.h debug.h
     327
     328# .deps/remote-cstms.Po
    319329# dummy
    320 remote-stub.o : \
    321  remote-stub.c make.h config.h \
    322  getopt.h \
    323  gettext.h filedef.h \
    324  hash.h job.h \
    325  commands.h
    326 rule.o : \
    327  rule.c make.h config.h \
    328  getopt.h \
    329  gettext.h dep.h \
    330  filedef.h hash.h job.h \
    331  commands.h variable.h rule.h
    332 signame.o : \
    333  signame.c make.h config.h \
    334  getopt.h \
    335  gettext.h
    336 variable.o : \
    337  variable.c make.h config.h \
    338  getopt.h \
    339  gettext.h dep.h \
    340  filedef.h hash.h job.h \
    341  commands.h variable.h rule.h
    342 version.o : \
    343  version.c config.h
    344 vpath.o : \
    345  vpath.c make.h config.h \
    346  getopt.h \
    347  gettext.h filedef.h \
    348  hash.h variable.h
     330
     331# .deps/remote-stub.Po
     332remote-stub.o remote-stub.o: remote-stub.c make.h config.h \
     333  getopt.h \
     334  gettext.h filedef.h hash.h job.h \
     335  commands.h
     336
     337# .deps/rule.Po
     338rule.o rule.o: rule.c make.h config.h \
     339  getopt.h \
     340  gettext.h dep.h filedef.h hash.h job.h \
     341  commands.h variable.h \
     342  rule.h
     343
     344# .deps/signame.Po
     345signame.o signame.o: signame.c make.h config.h \
     346  getopt.h \
     347  gettext.h
     348
     349# .deps/strcache.Po
     350strcache.o strcache.o: strcache.c make.h config.h \
     351  getopt.h \
     352  gettext.h hash.h
     353
     354# .deps/variable.Po
     355variable.o variable.o: variable.c make.h config.h \
     356  getopt.h \
     357  gettext.h dep.h filedef.h \
     358  hash.h job.h commands.h \
     359  variable.h rule.h
     360
     361# .deps/version.Po
     362version.o version.o: version.c config.h
     363
     364# .deps/vmsjobs.Po
     365# dummy
     366
     367# .deps/vpath.Po
     368vpath.o vpath.o: vpath.c make.h config.h \
     369  getopt.h \
     370  gettext.h filedef.h hash.h variable.h
  • vendor/gnumake/current/acinclude.m4

    r149 r501  
    22dnl
    33dnl Automake will incorporate this into its generated aclocal.m4.
     4dnl Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
     5dnl Free Software Foundation, Inc.
     6dnl This file is part of GNU Make.
     7dnl
     8dnl GNU Make is free software; you can redistribute it and/or modify it
     9dnl under the terms of the GNU General Public License as published by
     10dnl the Free Software Foundation; either version 2, or (at your option)
     11dnl any later version.
     12dnl
     13dnl GNU Make is distributed in the hope that it will be useful, but
     14dnl WITHOUT ANY WARRANTY; without even the implied warranty of
     15dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     16dnl General Public License for more details.
     17dnl
     18dnl You should have received a copy of the GNU General Public License
     19dnl along with GNU Make; see the file COPYING.  If not, write to the
     20dnl Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
     21dnl MA 02110-1301 USA.
     22
    423
    524dnl ---------------------------------------------------------------------------
  • vendor/gnumake/current/aclocal.m4

    r149 r501  
    1 # generated automatically by aclocal 1.8.2 -*- Autoconf -*-
    2 
    3 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
    4 # Free Software Foundation, Inc.
     1# generated automatically by aclocal 1.9.6 -*- Autoconf -*-
     2
     3# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
     4# 2005  Free Software Foundation, Inc.
    55# This file is free software; the Free Software Foundation
    66# gives unlimited permission to copy and/or distribute it,
     
    1212# PARTICULAR PURPOSE.
    1313
    14 #                                                        -*- Autoconf -*-
    15 # Copyright (C) 2002, 2003  Free Software Foundation, Inc.
    16 # Generated from amversion.in; do not edit by hand.
    17 
    18 # This program is free software; you can redistribute it and/or modify
    19 # it under the terms of the GNU General Public License as published by
    20 # the Free Software Foundation; either version 2, or (at your option)
    21 # any later version.
    22 
    23 # This program is distributed in the hope that it will be useful,
    24 # but WITHOUT ANY WARRANTY; without even the implied warranty of
    25 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    26 # GNU General Public License for more details.
    27 
    28 # You should have received a copy of the GNU General Public License
    29 # along with this program; if not, write to the Free Software
    30 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
     14# Copyright (C) 2002, 2003, 2005  Free Software Foundation, Inc.
     15#
     16# This file is free software; the Free Software Foundation
     17# gives unlimited permission to copy and/or distribute it,
     18# with or without modifications, as long as this notice is preserved.
    3119
    3220# AM_AUTOMAKE_VERSION(VERSION)
     
    3422# Automake X.Y traces this macro to ensure aclocal.m4 has been
    3523# generated from the m4 files accompanying Automake X.Y.
    36 AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version="1.8"])
     24AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version="1.9"])
    3725
    3826# AM_SET_CURRENT_AUTOMAKE_VERSION
     
    4129# This function is AC_REQUIREd by AC_INIT_AUTOMAKE.
    4230AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
    43          [AM_AUTOMAKE_VERSION([1.8.2])])
    44 
    45 # AM_AUX_DIR_EXPAND
    46 
    47 # Copyright (C) 2001, 2003 Free Software Foundation, Inc.
    48 
    49 # This program is free software; you can redistribute it and/or modify
    50 # it under the terms of the GNU General Public License as published by
    51 # the Free Software Foundation; either version 2, or (at your option)
    52 # any later version.
    53 
    54 # This program is distributed in the hope that it will be useful,
    55 # but WITHOUT ANY WARRANTY; without even the implied warranty of
    56 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    57 # GNU General Public License for more details.
    58 
    59 # You should have received a copy of the GNU General Public License
    60 # along with this program; if not, write to the Free Software
    61 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
    62 # 02111-1307, USA.
     31         [AM_AUTOMAKE_VERSION([1.9.6])])
     32
     33# AM_AUX_DIR_EXPAND                                         -*- Autoconf -*-
     34
     35# Copyright (C) 2001, 2003, 2005  Free Software Foundation, Inc.
     36#
     37# This file is free software; the Free Software Foundation
     38# gives unlimited permission to copy and/or distribute it,
     39# with or without modifications, as long as this notice is preserved.
    6340
    6441# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
     
    10784])
    10885
    109 # AM_CONDITIONAL                                              -*- Autoconf -*-
    110 
    111 # Copyright (C) 1997, 2000, 2001, 2003 Free Software Foundation, Inc.
    112 
    113 # This program is free software; you can redistribute it and/or modify
    114 # it under the terms of the GNU General Public License as published by
    115 # the Free Software Foundation; either version 2, or (at your option)
    116 # any later version.
    117 
    118 # This program is distributed in the hope that it will be useful,
    119 # but WITHOUT ANY WARRANTY; without even the implied warranty of
    120 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    121 # GNU General Public License for more details.
    122 
    123 # You should have received a copy of the GNU General Public License
    124 # along with this program; if not, write to the Free Software
    125 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
    126 # 02111-1307, USA.
    127 
    128 # serial 6
     86# AM_CONDITIONAL                                            -*- Autoconf -*-
     87
     88# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005
     89# Free Software Foundation, Inc.
     90#
     91# This file is free software; the Free Software Foundation
     92# gives unlimited permission to copy and/or distribute it,
     93# with or without modifications, as long as this notice is preserved.
     94
     95# serial 7
    12996
    13097# AM_CONDITIONAL(NAME, SHELL-CONDITION)
     
    146113AC_CONFIG_COMMANDS_PRE(
    147114[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
    148   AC_MSG_ERROR([conditional "$1" was never defined.
    149 Usually this means the macro was only invoked conditionally.])
     115  AC_MSG_ERROR([[conditional "$1" was never defined.
     116Usually this means the macro was only invoked conditionally.]])
    150117fi])])
    151118
    152 # serial 6                                              -*- Autoconf -*-
    153 
    154 # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
     119
     120# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
    155121# Free Software Foundation, Inc.
    156 
    157 # This program is free software; you can redistribute it and/or modify
    158 # it under the terms of the GNU General Public License as published by
    159 # the Free Software Foundation; either version 2, or (at your option)
    160 # any later version.
    161 
    162 # This program is distributed in the hope that it will be useful,
    163 # but WITHOUT ANY WARRANTY; without even the implied warranty of
    164 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    165 # GNU General Public License for more details.
    166 
    167 # You should have received a copy of the GNU General Public License
    168 # along with this program; if not, write to the Free Software
    169 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
    170 # 02111-1307, USA.
    171 
     122#
     123# This file is free software; the Free Software Foundation
     124# gives unlimited permission to copy and/or distribute it,
     125# with or without modifications, as long as this notice is preserved.
     126
     127# serial 8
    172128
    173129# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
     
    176132# C support machinery.  Also note that it means that autoscan, seeing
    177133# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
    178 
    179134
    180135
     
    237192    for i in 1 2 3 4 5 6; do
    238193      echo '#include "conftst'$i'.h"' >> sub/conftest.c
    239       : > sub/conftst$i.h
     194      # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
     195      # Solaris 8's {/usr,}/bin/sh.
     196      touch sub/conftst$i.h
    240197    done
    241198    echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
     
    265222       ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
    266223      # icc doesn't choke on unknown options, it will just issue warnings
    267       # (even with -Werror).  So we grep stderr for any message
    268       # that says an option was ignored.
    269       if grep 'ignoring option' conftest.err >/dev/null 2>&1; then :; else
     224      # or remarks (even with -Werror).  So we grep stderr for any message
     225      # that says an option was ignored or not supported.
     226      # When given -MP, icc 7.0 and 7.1 complain thusly:
     227      #   icc: Command line warning: ignoring option '-M'; no argument required
     228      # The diagnosis changed in icc 8.0:
     229      #   icc: Command line remark: option '-MP' not supported
     230      if (grep 'ignoring option' conftest.err ||
     231          grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
    270232        am_cv_$1_dependencies_compiler_type=$depmode
    271233        break
     
    311273])
    312274
    313 # Generate code to set up dependency tracking.   -*- Autoconf -*-
    314 
    315 # Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
    316 
    317 # This program is free software; you can redistribute it and/or modify
    318 # it under the terms of the GNU General Public License as published by
    319 # the Free Software Foundation; either version 2, or (at your option)
    320 # any later version.
    321 
    322 # This program is distributed in the hope that it will be useful,
    323 # but WITHOUT ANY WARRANTY; without even the implied warranty of
    324 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    325 # GNU General Public License for more details.
    326 
    327 # You should have received a copy of the GNU General Public License
    328 # along with this program; if not, write to the Free Software
    329 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
    330 # 02111-1307, USA.
    331 
    332 #serial 2
     275# Generate code to set up dependency tracking.              -*- Autoconf -*-
     276
     277# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
     278# Free Software Foundation, Inc.
     279#
     280# This file is free software; the Free Software Foundation
     281# gives unlimited permission to copy and/or distribute it,
     282# with or without modifications, as long as this notice is preserved.
     283
     284#serial 3
    333285
    334286# _AM_OUTPUT_DEPENDENCY_COMMANDS
     
    349301    continue
    350302  fi
    351   grep '^DEP_FILES *= *[[^ @%:@]]' < "$mf" > /dev/null || continue
    352   # Extract the definition of DEP_FILES from the Makefile without
    353   # running `make'.
    354   DEPDIR=`sed -n -e '/^DEPDIR = / s///p' < "$mf"`
     303  # Extract the definition of DEPDIR, am__include, and am__quote
     304  # from the Makefile without running `make'.
     305  DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
    355306  test -z "$DEPDIR" && continue
     307  am__include=`sed -n 's/^am__include = //p' < "$mf"`
     308  test -z "am__include" && continue
     309  am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
    356310  # When using ansi2knr, U may be empty or an underscore; expand it
    357   U=`sed -n -e '/^U = / s///p' < "$mf"`
    358   test -d "$dirpart/$DEPDIR" || mkdir "$dirpart/$DEPDIR"
    359   # We invoke sed twice because it is the simplest approach to
    360   # changing $(DEPDIR) to its actual value in the expansion.
    361   for file in `sed -n -e '
    362     /^DEP_FILES = .*\\\\$/ {
    363       s/^DEP_FILES = //
    364       :loop
    365         s/\\\\$//
    366         p
    367         n
    368         /\\\\$/ b loop
    369       p
    370     }
    371     /^DEP_FILES = / s/^DEP_FILES = //p' < "$mf" | \
     311  U=`sed -n 's/^U = //p' < "$mf"`
     312  # Find all dependency output files, they are included files with
     313  # $(DEPDIR) in their names.  We invoke sed twice because it is the
     314  # simplest approach to changing $(DEPDIR) to its actual value in the
     315  # expansion.
     316  for file in `sed -n "
     317    s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
    372318       sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
    373319    # Make sure the directory exists.
     
    396342
    397343
    398 # Copyright (C) 1996, 1998, 1999, 2000, 2001, 2002, 2003
     344# Copyright (C) 1996, 1998, 1999, 2000, 2001, 2002, 2003, 2005
    399345# Free Software Foundation, Inc.
    400 
    401 # This program is free software; you can redistribute it and/or modify
    402 # it under the terms of the GNU General Public License as published by
    403 # the Free Software Foundation; either version 2, or (at your option)
    404 # any later version.
    405 
    406 # This program is distributed in the hope that it will be useful,
    407 # but WITHOUT ANY WARRANTY; without even the implied warranty of
    408 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    409 # GNU General Public License for more details.
    410 
    411 # You should have received a copy of the GNU General Public License
    412 # along with this program; if not, write to the Free Software
    413 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
    414 # 02111-1307, USA.
    415 
    416 # serial 2
     346#
     347# This file is free software; the Free Software Foundation
     348# gives unlimited permission to copy and/or distribute it,
     349# with or without modifications, as long as this notice is preserved.
     350
     351# serial 3
    417352
    418353AC_DEFUN([AM_WITH_DMALLOC],
     
    434369AU_DEFUN([fp_WITH_DMALLOC], [AM_WITH_DMALLOC])
    435370
    436 # Do all the work for Automake.                            -*- Autoconf -*-
    437 
    438 # This macro actually does too much some checks are only needed if
     371# Do all the work for Automake.                             -*- Autoconf -*-
     372
     373# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
     374# Free Software Foundation, Inc.
     375#
     376# This file is free software; the Free Software Foundation
     377# gives unlimited permission to copy and/or distribute it,
     378# with or without modifications, as long as this notice is preserved.
     379
     380# serial 12
     381
     382# This macro actually does too much.  Some checks are only needed if
    439383# your package does certain things.  But this isn't really a big deal.
    440 
    441 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
    442 # Free Software Foundation, Inc.
    443 
    444 # This program is free software; you can redistribute it and/or modify
    445 # it under the terms of the GNU General Public License as published by
    446 # the Free Software Foundation; either version 2, or (at your option)
    447 # any later version.
    448 
    449 # This program is distributed in the hope that it will be useful,
    450 # but WITHOUT ANY WARRANTY; without even the implied warranty of
    451 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    452 # GNU General Public License for more details.
    453 
    454 # You should have received a copy of the GNU General Public License
    455 # along with this program; if not, write to the Free Software
    456 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
    457 # 02111-1307, USA.
    458 
    459 # serial 11
    460384
    461385# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
     
    515439AM_MISSING_PROG(AUTOHEADER, autoheader)
    516440AM_MISSING_PROG(MAKEINFO, makeinfo)
    517 AM_MISSING_PROG(AMTAR, tar)
    518441AM_PROG_INSTALL_SH
    519442AM_PROG_INSTALL_STRIP
     
    524447AC_REQUIRE([AC_PROG_MAKE_SET])dnl
    525448AC_REQUIRE([AM_SET_LEADING_DOT])dnl
    526 
     449_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
     450              [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
     451                             [_AM_PROG_TAR([v7])])])
    527452_AM_IF_OPTION([no-dependencies],,
    528453[AC_PROVIDE_IFELSE([AC_PROG_CC],
     
    558483echo "timestamp for $1" >`AS_DIRNAME([$1])`/stamp-h[]$_am_stamp_count])
    559484
     485# Copyright (C) 2001, 2003, 2005  Free Software Foundation, Inc.
     486#
     487# This file is free software; the Free Software Foundation
     488# gives unlimited permission to copy and/or distribute it,
     489# with or without modifications, as long as this notice is preserved.
     490
    560491# AM_PROG_INSTALL_SH
    561492# ------------------
    562493# Define $install_sh.
    563 
    564 # Copyright (C) 2001, 2003 Free Software Foundation, Inc.
    565 
    566 # This program is free software; you can redistribute it and/or modify
    567 # it under the terms of the GNU General Public License as published by
    568 # the Free Software Foundation; either version 2, or (at your option)
    569 # any later version.
    570 
    571 # This program is distributed in the hope that it will be useful,
    572 # but WITHOUT ANY WARRANTY; without even the implied warranty of
    573 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    574 # GNU General Public License for more details.
    575 
    576 # You should have received a copy of the GNU General Public License
    577 # along with this program; if not, write to the Free Software
    578 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
    579 # 02111-1307, USA.
    580 
    581494AC_DEFUN([AM_PROG_INSTALL_SH],
    582495[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
     
    584497AC_SUBST(install_sh)])
    585498
    586 #                                                          -*- Autoconf -*-
    587 # Copyright (C) 2003  Free Software Foundation, Inc.
    588 
    589 # This program is free software; you can redistribute it and/or modify
    590 # it under the terms of the GNU General Public License as published by
    591 # the Free Software Foundation; either version 2, or (at your option)
    592 # any later version.
    593 
    594 # This program is distributed in the hope that it will be useful,
    595 # but WITHOUT ANY WARRANTY; without even the implied warranty of
    596 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    597 # GNU General Public License for more details.
    598 
    599 # You should have received a copy of the GNU General Public License
    600 # along with this program; if not, write to the Free Software
    601 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
    602 # 02111-1307, USA.
    603 
    604 # serial 1
     499# Copyright (C) 2003, 2005  Free Software Foundation, Inc.
     500#
     501# This file is free software; the Free Software Foundation
     502# gives unlimited permission to copy and/or distribute it,
     503# with or without modifications, as long as this notice is preserved.
     504
     505# serial 2
    605506
    606507# Check whether the underlying file-system supports filenames
     
    617518AC_SUBST([am__leading_dot])])
    618519
    619 # Check to see how 'make' treats includes.      -*- Autoconf -*-
    620 
    621 # Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
    622 
    623 # This program is free software; you can redistribute it and/or modify
    624 # it under the terms of the GNU General Public License as published by
    625 # the Free Software Foundation; either version 2, or (at your option)
    626 # any later version.
    627 
    628 # This program is distributed in the hope that it will be useful,
    629 # but WITHOUT ANY WARRANTY; without even the implied warranty of
    630 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    631 # GNU General Public License for more details.
    632 
    633 # You should have received a copy of the GNU General Public License
    634 # along with this program; if not, write to the Free Software
    635 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
    636 # 02111-1307, USA.
    637 
    638 # serial 2
     520# Check to see how 'make' treats includes.                  -*- Autoconf -*-
     521
     522# Copyright (C) 2001, 2002, 2003, 2005  Free Software Foundation, Inc.
     523#
     524# This file is free software; the Free Software Foundation
     525# gives unlimited permission to copy and/or distribute it,
     526# with or without modifications, as long as this notice is preserved.
     527
     528# serial 3
    639529
    640530# AM_MAKE_INCLUDE()
     
    680570])
    681571
    682 # serial 2
     572# Copyright (C) 1999, 2000, 2001, 2003, 2005  Free Software Foundation, Inc.
     573#
     574# This file is free software; the Free Software Foundation
     575# gives unlimited permission to copy and/or distribute it,
     576# with or without modifications, as long as this notice is preserved.
     577
     578# serial 3
    683579
    684580# AM_PROG_CC_C_O
    685581# --------------
    686582# Like AC_PROG_CC_C_O, but changed for automake.
    687 
    688 # Copyright (C) 1999, 2000, 2001, 2003 Free Software Foundation, Inc.
    689 
    690 # This program is free software; you can redistribute it and/or modify
    691 # it under the terms of the GNU General Public License as published by
    692 # the Free Software Foundation; either version 2, or (at your option)
    693 # any later version.
    694 
    695 # This program is distributed in the hope that it will be useful,
    696 # but WITHOUT ANY WARRANTY; without even the implied warranty of
    697 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    698 # GNU General Public License for more details.
    699 
    700 # You should have received a copy of the GNU General Public License
    701 # along with this program; if not, write to the Free Software
    702 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
    703 # 02111-1307, USA.
    704 
    705583AC_DEFUN([AM_PROG_CC_C_O],
    706584[AC_REQUIRE([AC_PROG_CC_C_O])dnl
     
    720598])
    721599
    722 #  -*- Autoconf -*-
    723 
    724 
    725 # Copyright (C) 1997, 1999, 2000, 2001, 2003 Free Software Foundation, Inc.
    726 
    727 # This program is free software; you can redistribute it and/or modify
    728 # it under the terms of the GNU General Public License as published by
    729 # the Free Software Foundation; either version 2, or (at your option)
    730 # any later version.
    731 
    732 # This program is distributed in the hope that it will be useful,
    733 # but WITHOUT ANY WARRANTY; without even the implied warranty of
    734 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    735 # GNU General Public License for more details.
    736 
    737 # You should have received a copy of the GNU General Public License
    738 # along with this program; if not, write to the Free Software
    739 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
    740 # 02111-1307, USA.
    741 
    742 # serial 3
     600# Fake the existence of programs that GNU maintainers use.  -*- Autoconf -*-
     601
     602# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2005
     603# Free Software Foundation, Inc.
     604#
     605# This file is free software; the Free Software Foundation
     606# gives unlimited permission to copy and/or distribute it,
     607# with or without modifications, as long as this notice is preserved.
     608
     609# serial 4
    743610
    744611# AM_MISSING_PROG(NAME, PROGRAM)
     
    766633])
    767634
     635# Copyright (C) 2003, 2004, 2005  Free Software Foundation, Inc.
     636#
     637# This file is free software; the Free Software Foundation
     638# gives unlimited permission to copy and/or distribute it,
     639# with or without modifications, as long as this notice is preserved.
     640
    768641# AM_PROG_MKDIR_P
    769642# ---------------
    770643# Check whether `mkdir -p' is supported, fallback to mkinstalldirs otherwise.
    771 
    772 # Copyright (C) 2003, 2004 Free Software Foundation, Inc.
    773 
    774 # This program is free software; you can redistribute it and/or modify
    775 # it under the terms of the GNU General Public License as published by
    776 # the Free Software Foundation; either version 2, or (at your option)
    777 # any later version.
    778 
    779 # This program is distributed in the hope that it will be useful,
    780 # but WITHOUT ANY WARRANTY; without even the implied warranty of
    781 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    782 # GNU General Public License for more details.
    783 
    784 # You should have received a copy of the GNU General Public License
    785 # along with this program; if not, write to the Free Software
    786 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
    787 # 02111-1307, USA.
    788 
     644#
    789645# Automake 1.8 used `mkdir -m 0755 -p --' to ensure that directories
    790646# created by `make install' are always world readable, even if the
     
    797653# Do not use -m 0755 and let people choose whatever they expect by
    798654# setting umask.
     655#
     656# We cannot accept any implementation of `mkdir' that recognizes `-p'.
     657# Some implementations (such as Solaris 8's) are not thread-safe: if a
     658# parallel make tries to run `mkdir -p a/b' and `mkdir -p a/c'
     659# concurrently, both version can detect that a/ is missing, but only
     660# one can create it and the other will error out.  Consequently we
     661# restrict ourselves to GNU make (using the --version option ensures
     662# this.)
    799663AC_DEFUN([AM_PROG_MKDIR_P],
    800 [if mkdir -p -- . 2>/dev/null; then
    801   # Keeping the `.' argument allows $(mkdir_p) to be used without
    802   # argument.  Indeed, we sometimes output rules like
     664[if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
     665  # We used to keeping the `.' as first argument, in order to
     666  # allow $(mkdir_p) to be used without argument.  As in
    803667  #   $(mkdir_p) $(somedir)
    804   # where $(somedir) is conditionally defined.
    805   # (`test -n '$(somedir)' && $(mkdir_p) $(somedir)' is a more
    806   # expensive solution, as it forces Make to start a sub-shell.)
    807   mkdir_p='mkdir -p -- .'
     668  # where $(somedir) is conditionally defined.  However this is wrong
     669  # for two reasons:
     670  #  1. if the package is installed by a user who cannot write `.'
     671  #     make install will fail,
     672  #  2. the above comment should most certainly read
     673  #     $(mkdir_p) $(DESTDIR)$(somedir)
     674  #     so it does not work when $(somedir) is undefined and
     675  #     $(DESTDIR) is not.
     676  #  To support the latter case, we have to write
     677  #     test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir),
     678  #  so the `.' trick is pointless.
     679  mkdir_p='mkdir -p --'
    808680else
    809681  # On NextStep and OpenStep, the `mkdir' command does not
     
    811683  # directories to create, and then abort because `.' already
    812684  # exists.
    813   for d in ./-p ./--;
     685  for d in ./-p ./--version;
    814686  do
    815687    test -d $d && rmdir $d
     
    824696AC_SUBST([mkdir_p])])
    825697
    826 # Helper functions for option handling.                    -*- Autoconf -*-
    827 
    828 # Copyright (C) 2001, 2002, 2003  Free Software Foundation, Inc.
    829 
    830 # This program is free software; you can redistribute it and/or modify
    831 # it under the terms of the GNU General Public License as published by
    832 # the Free Software Foundation; either version 2, or (at your option)
    833 # any later version.
    834 
    835 # This program is distributed in the hope that it will be useful,
    836 # but WITHOUT ANY WARRANTY; without even the implied warranty of
    837 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    838 # GNU General Public License for more details.
    839 
    840 # You should have received a copy of the GNU General Public License
    841 # along with this program; if not, write to the Free Software
    842 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
    843 # 02111-1307, USA.
    844 
    845 # serial 2
     698# Helper functions for option handling.                     -*- Autoconf -*-
     699
     700# Copyright (C) 2001, 2002, 2003, 2005  Free Software Foundation, Inc.
     701#
     702# This file is free software; the Free Software Foundation
     703# gives unlimited permission to copy and/or distribute it,
     704# with or without modifications, as long as this notice is preserved.
     705
     706# serial 3
    846707
    847708# _AM_MANGLE_OPTION(NAME)
     
    868729[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
    869730
    870 
    871 # Copyright (C) 1996, 1997, 1998, 2000, 2001, 2002, 2003
     731# Copyright (C) 1996, 1997, 1998, 2000, 2001, 2002, 2003, 2005
    872732# Free Software Foundation, Inc.
    873 
    874 # This program is free software; you can redistribute it and/or modify
    875 # it under the terms of the GNU General Public License as published by
    876 # the Free Software Foundation; either version 2, or (at your option)
    877 # any later version.
    878 
    879 # This program is distributed in the hope that it will be useful,
    880 # but WITHOUT ANY WARRANTY; without even the implied warranty of
    881 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    882 # GNU General Public License for more details.
    883 
    884 # You should have received a copy of the GNU General Public License
    885 # along with this program; if not, write to the Free Software
    886 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
    887 # 02111-1307, USA.
    888 
    889 # serial 3
     733#
     734# This file is free software; the Free Software Foundation
     735# gives unlimited permission to copy and/or distribute it,
     736# with or without modifications, as long as this notice is preserved.
     737
     738# serial 4
    890739
    891740AC_DEFUN([AM_C_PROTOTYPES],
     
    905754AU_DEFUN([fp_C_PROTOTYPES], [AM_C_PROTOTYPES])
    906755
    907 #
    908 # Check to make sure that the build environment is sane.
    909 #
    910 
    911 # Copyright (C) 1996, 1997, 2000, 2001, 2003 Free Software Foundation, Inc.
    912 
    913 # This program is free software; you can redistribute it and/or modify
    914 # it under the terms of the GNU General Public License as published by
    915 # the Free Software Foundation; either version 2, or (at your option)
    916 # any later version.
    917 
    918 # This program is distributed in the hope that it will be useful,
    919 # but WITHOUT ANY WARRANTY; without even the implied warranty of
    920 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    921 # GNU General Public License for more details.
    922 
    923 # You should have received a copy of the GNU General Public License
    924 # along with this program; if not, write to the Free Software
    925 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
    926 # 02111-1307, USA.
    927 
    928 # serial 3
     756# Check to make sure that the build environment is sane.    -*- Autoconf -*-
     757
     758# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005
     759# Free Software Foundation, Inc.
     760#
     761# This file is free software; the Free Software Foundation
     762# gives unlimited permission to copy and/or distribute it,
     763# with or without modifications, as long as this notice is preserved.
     764
     765# serial 4
    929766
    930767# AM_SANITY_CHECK
     
    969806AC_MSG_RESULT(yes)])
    970807
     808# Copyright (C) 2001, 2003, 2005  Free Software Foundation, Inc.
     809#
     810# This file is free software; the Free Software Foundation
     811# gives unlimited permission to copy and/or distribute it,
     812# with or without modifications, as long as this notice is preserved.
     813
    971814# AM_PROG_INSTALL_STRIP
    972 
    973 # Copyright (C) 2001, 2003 Free Software Foundation, Inc.
    974 
    975 # This program is free software; you can redistribute it and/or modify
    976 # it under the terms of the GNU General Public License as published by
    977 # the Free Software Foundation; either version 2, or (at your option)
    978 # any later version.
    979 
    980 # This program is distributed in the hope that it will be useful,
    981 # but WITHOUT ANY WARRANTY; without even the implied warranty of
    982 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    983 # GNU General Public License for more details.
    984 
    985 # You should have received a copy of the GNU General Public License
    986 # along with this program; if not, write to the Free Software
    987 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
    988 # 02111-1307, USA.
    989 
     815# ---------------------
    990816# One issue with vendor `install' (even GNU) is that you can't
    991817# specify the program used to strip binaries.  This is especially
     
    1008834AC_SUBST([INSTALL_STRIP_PROGRAM])])
    1009835
     836# Check how to create a tarball.                            -*- Autoconf -*-
     837
     838# Copyright (C) 2004, 2005  Free Software Foundation, Inc.
     839#
     840# This file is free software; the Free Software Foundation
     841# gives unlimited permission to copy and/or distribute it,
     842# with or without modifications, as long as this notice is preserved.
     843
     844# serial 2
     845
     846# _AM_PROG_TAR(FORMAT)
     847# --------------------
     848# Check how to create a tarball in format FORMAT.
     849# FORMAT should be one of `v7', `ustar', or `pax'.
     850#
     851# Substitute a variable $(am__tar) that is a command
     852# writing to stdout a FORMAT-tarball containing the directory
     853# $tardir.
     854#     tardir=directory && $(am__tar) > result.tar
     855#
     856# Substitute a variable $(am__untar) that extract such
     857# a tarball read from stdin.
     858#     $(am__untar) < result.tar
     859AC_DEFUN([_AM_PROG_TAR],
     860[# Always define AMTAR for backward compatibility.
     861AM_MISSING_PROG([AMTAR], [tar])
     862m4_if([$1], [v7],
     863     [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'],
     864     [m4_case([$1], [ustar],, [pax],,
     865              [m4_fatal([Unknown tar format])])
     866AC_MSG_CHECKING([how to create a $1 tar archive])
     867# Loop over all known methods to create a tar archive until one works.
     868_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
     869_am_tools=${am_cv_prog_tar_$1-$_am_tools}
     870# Do not fold the above two line into one, because Tru64 sh and
     871# Solaris sh will not grok spaces in the rhs of `-'.
     872for _am_tool in $_am_tools
     873do
     874  case $_am_tool in
     875  gnutar)
     876    for _am_tar in tar gnutar gtar;
     877    do
     878      AM_RUN_LOG([$_am_tar --version]) && break
     879    done
     880    am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
     881    am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
     882    am__untar="$_am_tar -xf -"
     883    ;;
     884  plaintar)
     885    # Must skip GNU tar: if it does not support --format= it doesn't create
     886    # ustar tarball either.
     887    (tar --version) >/dev/null 2>&1 && continue
     888    am__tar='tar chf - "$$tardir"'
     889    am__tar_='tar chf - "$tardir"'
     890    am__untar='tar xf -'
     891    ;;
     892  pax)
     893    am__tar='pax -L -x $1 -w "$$tardir"'
     894    am__tar_='pax -L -x $1 -w "$tardir"'
     895    am__untar='pax -r'
     896    ;;
     897  cpio)
     898    am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
     899    am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
     900    am__untar='cpio -i -H $1 -d'
     901    ;;
     902  none)
     903    am__tar=false
     904    am__tar_=false
     905    am__untar=false
     906    ;;
     907  esac
     908
     909  # If the value was cached, stop now.  We just wanted to have am__tar
     910  # and am__untar set.
     911  test -n "${am_cv_prog_tar_$1}" && break
     912
     913  # tar/untar a dummy directory, and stop if the command works
     914  rm -rf conftest.dir
     915  mkdir conftest.dir
     916  echo GrepMe > conftest.dir/file
     917  AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
     918  rm -rf conftest.dir
     919  if test -s conftest.tar; then
     920    AM_RUN_LOG([$am__untar <conftest.tar])
     921    grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
     922  fi
     923done
     924rm -rf conftest.dir
     925
     926AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
     927AC_MSG_RESULT([$am_cv_prog_tar_$1])])
     928AC_SUBST([am__tar])
     929AC_SUBST([am__untar])
     930]) # _AM_PROG_TAR
     931
    1010932m4_include([config/dospaths.m4])
    1011933m4_include([config/gettext.m4])
  • vendor/gnumake/current/amiga.c

    r54 r501  
    11/* Running commands on Amiga
    2 Copyright (C) 1995, 1996 Free Software Foundation, Inc.
     2Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
     32005, 2006 Free Software Foundation, Inc.
    34This file is part of GNU Make.
    45
    5 GNU Make is free software; you can redistribute it and/or modify
    6 it under the terms of the GNU General Public License as published by
    7 the Free Software Foundation; either version 2, or (at your option)
    8 any later version.
     6GNU Make is free software; you can redistribute it and/or modify it under the
     7terms of the GNU General Public License as published by the Free Software
     8Foundation; either version 2, or (at your option) any later version.
    99
    10 GNU Make is distributed in the hope that it will be useful,
    11 but WITHOUT ANY WARRANTY; without even the implied warranty of
    12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    13 GNU General Public License for more details.
     10GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     11WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     12A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
    1413
    15 You should have received a copy of the GNU General Public License
    16 along with GNU Make; see the file COPYING.  If not, write to
    17 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
    18 MA 02111-1307, USA.  */
     14You should have received a copy of the GNU General Public License along with
     15GNU Make; see the file COPYING.  If not, write to the Free Software
     16Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
    1917
    2018#include "make.h"
  • vendor/gnumake/current/amiga.h

    r54 r501  
    11/* Definitions for amiga specific things
    2 Copyright (C) 1995, 1996 Free Software Foundation, Inc.
     2Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
     32005, 2006 Free Software Foundation, Inc.
    34This file is part of GNU Make.
    45
    5 GNU Make is free software; you can redistribute it and/or modify
    6 it under the terms of the GNU General Public License as published by
    7 the Free Software Foundation; either version 2, or (at your option)
    8 any later version.
     6GNU Make is free software; you can redistribute it and/or modify it under the
     7terms of the GNU General Public License as published by the Free Software
     8Foundation; either version 2, or (at your option) any later version.
    99
    10 GNU Make is distributed in the hope that it will be useful,
    11 but WITHOUT ANY WARRANTY; without even the implied warranty of
    12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    13 GNU General Public License for more details.
     10GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     11WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     12A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
    1413
    15 You should have received a copy of the GNU General Public License
    16 along with GNU Make; see the file COPYING.  If not, write to
    17 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
    18 MA 02111-1307, USA.  */
     14You should have received a copy of the GNU General Public License along with
     15GNU Make; see the file COPYING.  If not, write to the Free Software
     16Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
    1917
    2018extern int MyExecute PARAMS ((char ** argv));
  • vendor/gnumake/current/ar.c

    r153 r501  
    11/* Interface to `ar' archives for GNU Make.
    2 Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1997,
    3 2002 Free Software Foundation, Inc.
     2Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
     31998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software
     4Foundation, Inc.
    45This file is part of GNU Make.
    56
    6 GNU Make is free software; you can redistribute it and/or modify
    7 it under the terms of the GNU General Public License as published by
    8 the Free Software Foundation; either version 2, or (at your option)
    9 any later version.
    10 
    11 GNU Make is distributed in the hope that it will be useful,
    12 but WITHOUT ANY WARRANTY; without even the implied warranty of
    13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    14 GNU General Public License for more details.
    15 
    16 You should have received a copy of the GNU General Public License
    17 along with GNU Make; see the file COPYING.  If not, write to
    18 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    19 Boston, MA 02111-1307, USA.  */
     7GNU Make is free software; you can redistribute it and/or modify it under the
     8terms of the GNU General Public License as published by the Free Software
     9Foundation; either version 2, or (at your option) any later version.
     10
     11GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     12WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     13A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     14
     15You should have received a copy of the GNU General Public License along with
     16GNU Make; see the file COPYING.  If not, write to the Free Software
     17Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
    2018
    2119#include "make.h"
  • vendor/gnumake/current/arscan.c

    r153 r501  
    11/* Library function for scanning an archive file.
    2 Copyright (C) 1987,89,91,92,93,94,95,97 Free Software Foundation, Inc.
    3 
    4 This program is free software; you can redistribute it and/or modify
    5 it under the terms of the GNU General Public License as published by
    6 the Free Software Foundation; either version 2, or (at your option)
    7 any later version.
    8 
    9 This program is distributed in the hope that it will be useful,
    10 but WITHOUT ANY WARRANTY; without even the implied warranty of
    11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    12 GNU General Public License for more details.
    13 
    14 You should have received a copy of the GNU General Public License
    15 along with this program; if not, write to the Free Software
    16 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
    17 USA.  */
     2Copyright (C) 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
     31998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation,
     4Inc.
     5This file is part of GNU Make.
     6
     7GNU Make is free software; you can redistribute it and/or modify it under the
     8terms of the GNU General Public License as published by the Free Software
     9Foundation; either version 2, or (at your option) any later version.
     10
     11GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     12WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     13A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     14
     15You should have received a copy of the GNU General Public License along with
     16GNU Make; see the file COPYING.  If not, write to the Free Software
     17Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
    1818
    1919#include "make.h"
  • vendor/gnumake/current/build.sh.in

    • Property svn:executable set to *
    r152 r501  
    33# @configure_input@
    44
    5 # Copyright (C) 1993, 1994, 1997, 2003 Free Software Foundation, Inc.
     5# Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
     6# 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
    67# This file is part of GNU Make.
    78#
    8 # GNU Make is free software; you can redistribute it and/or modify
    9 # it under the terms of the GNU General Public License as published by
    10 # the Free Software Foundation; either version 2, or (at your option)
    11 # any later version.
     9# GNU Make is free software; you can redistribute it and/or modify it under the
     10# terms of the GNU General Public License as published by the Free Software
     11# Foundation; either version 2, or (at your option) any later version.
    1212#
    13 # GNU Make is distributed in the hope that it will be useful,
    14 # but WITHOUT ANY WARRANTY; without even the implied warranty of
    15 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    16 # GNU General Public License for more details.
     13# GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     14# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     15# A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
    1716#
    18 # You should have received a copy of the GNU General Public License
    19 # along with GNU Make; see the file COPYING.  If not, write to
    20 # the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    21 # Boston, MA 02111-1307, USA.
     17# You should have received a copy of the GNU General Public License along with
     18# GNU Make; see the file COPYING.  If not, write to the Free Software
     19# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
    2220
    2321# See Makefile.in for comments describing these variables.
     
    2927LDFLAGS='@LDFLAGS@'
    3028ALLOCA='@ALLOCA@'
    31 LOADLIBES='@LIBS@'
     29LOADLIBES='@LIBS@ @LIBINTL@'
    3230eval extras=\'@LIBOBJS@\'
    3331REMOTE='@REMOTE@'
     
    5553
    5654# These are all the objects we need to link together.
    57 objs="ar.${OBJEXT} arscan.${OBJEXT} commands.${OBJEXT} default.${OBJEXT} dir.${OBJEXT} expand.${OBJEXT} file.${OBJEXT} function.${OBJEXT} getopt.${OBJEXT} getopt1.${OBJEXT} implicit.${OBJEXT} job.${OBJEXT} main.${OBJEXT} misc.${OBJEXT} read.${OBJEXT} remake.${OBJEXT} rule.${OBJEXT} signame.${OBJEXT} variable.${OBJEXT} version.${OBJEXT} vpath.${OBJEXT} hash.${OBJEXT} remote-${REMOTE}.${OBJEXT} ${extras} ${ALLOCA}"
     55objs="ar.${OBJEXT} arscan.${OBJEXT} commands.${OBJEXT} default.${OBJEXT} dir.${OBJEXT} expand.${OBJEXT} file.${OBJEXT} function.${OBJEXT} getopt.${OBJEXT} getopt1.${OBJEXT} implicit.${OBJEXT} job.${OBJEXT} main.${OBJEXT} misc.${OBJEXT} read.${OBJEXT} remake.${OBJEXT} rule.${OBJEXT} signame.${OBJEXT} strcache.${OBJEXT} variable.${OBJEXT} version.${OBJEXT} vpath.${OBJEXT} hash.${OBJEXT} remote-${REMOTE}.${OBJEXT} ${extras} ${ALLOCA}"
    5856
    5957if [ x"$GLOBLIB" != x ]; then
    60   objs="$objs glob/fnmatch.${OBJEXT} glob/glob.${OBJEXT})"
     58  objs="$objs glob/fnmatch.${OBJEXT} glob/glob.${OBJEXT}"
    6159  globinc=-I${srcdir}/glob
    6260fi
     
    7977# Link all the objects together.
    8078echo linking make...
    81 $CC $LDFLAGS $objs $LOADLIBES -o makenew${EXEEXT}
     79$CC $CFLAGS $LDFLAGS $objs $LOADLIBES -o makenew${EXEEXT}
    8280echo done
    8381mv -f makenew${EXEEXT} make${EXEEXT}
  • vendor/gnumake/current/build_w32.bat

    r153 r501  
    1 set make=gnumake
     1@echo off
     2rem Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
     3rem 2006 Free Software Foundation, Inc.
     4rem This file is part of GNU Make.
     5
     6rem GNU Make is free software; you can redistribute it and/or modify it under the
     7rem terms of the GNU General Public License as published by the Free Software
     8rem Foundation; either version 2, or (at your option) any later version.
     9
     10rem GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     11rem WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     12rem A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     13
     14rem You should have received a copy of the GNU General Public License along with
     15rem GNU Make; see the file COPYING.  If not, write to the Free Software
     16rem Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
     17
    218if not exist config.h copy config.h.W32 config.h
    319cd w32\subproc
    420echo "Creating the subproc library"
    5 %ComSpec% /c build.bat
     21%ComSpec% /c build.bat %1
    622cd ..\..
    7 del link.dbg link.rel
    8 del config.h
    9 copy config.h.W32 config.h
    10 echo off
    11 echo "Creating GNU make for Windows 95/NT"
     23
     24if exist link.dbg del link.dbg
     25if exist link.rel del link.rel
     26echo "Creating GNU Make for Windows 9X/NT/2K/XP"
     27if "%1" == "gcc" GoTo GCCBuild
     28set make=gnumake
    1229echo on
    1330if not exist .\WinDebug\nul mkdir .\WinDebug
    14 cl.exe /nologo /MT /W3 /GX /Zi /YX /Od /I . /I glob /I w32/include /D TIVOLI /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c variable.c
     31cl.exe /nologo /MT /W4 /GX /Zi /YX /Od /I . /I glob /I w32/include /D TIVOLI /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c variable.c
    1532echo WinDebug\variable.obj >>link.dbg
    16 cl.exe /nologo /MT /W3 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c rule.c
     33cl.exe /nologo /MT /W4 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c rule.c
    1734echo WinDebug\rule.obj >>link.dbg
    18 cl.exe /nologo /MT /W3 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c remote-stub.c
     35cl.exe /nologo /MT /W4 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c remote-stub.c
    1936echo WinDebug\remote-stub.obj >>link.dbg
    20 cl.exe /nologo /MT /W3 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c commands.c
     37cl.exe /nologo /MT /W4 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c commands.c
    2138echo WinDebug\commands.obj >>link.dbg
    22 cl.exe /nologo /MT /W3 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c file.c
     39cl.exe /nologo /MT /W4 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c file.c
    2340echo WinDebug\file.obj >>link.dbg
    24 cl.exe /nologo /MT /W3 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c getloadavg.c
     41cl.exe /nologo /MT /W4 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c getloadavg.c
    2542echo WinDebug\getloadavg.obj >>link.dbg
    26 cl.exe /nologo /MT /W3 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c default.c
     43cl.exe /nologo /MT /W4 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c default.c
    2744echo WinDebug\default.obj >>link.dbg
    28 cl.exe /nologo /MT /W3 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c signame.c
     45cl.exe /nologo /MT /W4 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c signame.c
    2946echo WinDebug\signame.obj >>link.dbg
    30 cl.exe /nologo /MT /W3 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c expand.c
     47cl.exe /nologo /MT /W4 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c expand.c
    3148echo WinDebug\expand.obj >>link.dbg
    32 cl.exe /nologo /MT /W3 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c dir.c
     49cl.exe /nologo /MT /W4 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c dir.c
    3350echo WinDebug\dir.obj >>link.dbg
    34 cl.exe /nologo /MT /W3 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c main.c
     51cl.exe /nologo /MT /W4 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c main.c
    3552echo WinDebug\main.obj >>link.dbg
    36 cl.exe /nologo /MT /W3 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c getopt1.c
     53cl.exe /nologo /MT /W4 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c getopt1.c
    3754echo WinDebug\getopt1.obj >>link.dbg
    38 cl.exe /nologo /MT /W3 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c job.c
     55cl.exe /nologo /MT /W4 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c job.c
    3956echo WinDebug\job.obj >>link.dbg
    40 cl.exe /nologo /MT /W3 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c read.c
     57cl.exe /nologo /MT /W4 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c read.c
    4158echo WinDebug\read.obj >>link.dbg
    42 cl.exe /nologo /MT /W3 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c version.c
     59cl.exe /nologo /MT /W4 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c version.c
    4360echo WinDebug\version.obj >>link.dbg
    44 cl.exe /nologo /MT /W3 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c getopt.c
     61cl.exe /nologo /MT /W4 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c getopt.c
    4562echo WinDebug\getopt.obj >>link.dbg
    46 cl.exe /nologo /MT /W3 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c arscan.c
     63cl.exe /nologo /MT /W4 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c arscan.c
    4764echo WinDebug\arscan.obj >>link.dbg
    48 cl.exe /nologo /MT /W3 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c hash.c
     65cl.exe /nologo /MT /W4 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c hash.c
    4966echo WinDebug\hash.obj >>link.dbg
    50 cl.exe /nologo /MT /W3 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c remake.c
     67cl.exe /nologo /MT /W4 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c strcache.c
     68echo WinDebug\strcache.obj >>link.dbg
     69cl.exe /nologo /MT /W4 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c remake.c
    5170echo WinDebug\remake.obj >>link.dbg
    52 cl.exe /nologo /MT /W3 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c misc.c
     71cl.exe /nologo /MT /W4 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c misc.c
    5372echo WinDebug\misc.obj >>link.dbg
    54 cl.exe /nologo /MT /W3 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c ar.c
     73cl.exe /nologo /MT /W4 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c ar.c
    5574echo WinDebug\ar.obj >>link.dbg
    56 cl.exe /nologo /MT /W3 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c function.c
     75cl.exe /nologo /MT /W4 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c function.c
    5776echo WinDebug\function.obj >>link.dbg
    58 cl.exe /nologo /MT /W3 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c vpath.c
     77cl.exe /nologo /MT /W4 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c vpath.c
    5978echo WinDebug\vpath.obj >>link.dbg
    60 cl.exe /nologo /MT /W3 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c implicit.c
     79cl.exe /nologo /MT /W4 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c implicit.c
    6180echo WinDebug\implicit.obj >>link.dbg
    62 cl.exe /nologo /MT /W3 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c  .\w32\compat\dirent.c
     81cl.exe /nologo /MT /W4 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c  .\w32\compat\dirent.c
    6382echo WinDebug\dirent.obj >>link.dbg
    64 cl.exe /nologo /MT /W3 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c  .\glob\glob.c
     83cl.exe /nologo /MT /W4 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c  .\glob\glob.c
    6584echo WinDebug\glob.obj >>link.dbg
    66 cl.exe /nologo /MT /W3 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c  .\glob\fnmatch.c
     85cl.exe /nologo /MT /W4 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c  .\glob\fnmatch.c
    6786echo WinDebug\fnmatch.obj >>link.dbg
    68 cl.exe /nologo /MT /W3 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c  .\w32\pathstuff.c
     87cl.exe /nologo /MT /W4 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c  .\w32\pathstuff.c
    6988echo WinDebug\pathstuff.obj >>link.dbg
    7089echo off
    7190echo "Linking WinDebug/%make%.exe"
    72 rem link.exe kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib w32\subproc\windebug\subproc.lib /NOLOGO /SUBSYSTEM:console /INCREMENTAL:yes /PDB:.\WinDebug/%make%.pdb /DEBUG /MACHINE:I386 /OUT:.\WinDebug/%make%.exe .\WinDebug/variable.obj  .\WinDebug/rule.obj  .\WinDebug/remote-stub.obj  .\WinDebug/commands.obj  .\WinDebug/file.obj  .\WinDebug/getloadavg.obj  .\WinDebug/default.obj  .\WinDebug/signame.obj  .\WinDebug/expand.obj  .\WinDebug/dir.obj  .\WinDebug/main.obj  .\WinDebug/getopt1.obj  .\WinDebug/job.obj  .\WinDebug/read.obj  .\WinDebug/version.obj  .\WinDebug/getopt.obj  .\WinDebug/arscan.obj  .\WinDebug/remake.obj  .\WinDebug/hash.obj  .\WinDebug/misc.obj  .\WinDebug/ar.obj  .\WinDebug/function.obj  .\WinDebug/vpath.obj  .\WinDebug/implicit.obj  .\WinDebug/dirent.obj  .\WinDebug/glob.obj  .\WinDebug/fnmatch.obj  .\WinDebug/pathstuff.obj
     91rem link.exe kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib w32\subproc\windebug\subproc.lib /NOLOGO /SUBSYSTEM:console /INCREMENTAL:yes /PDB:.\WinDebug/%make%.pdb /DEBUG /MACHINE:I386 /OUT:.\WinDebug/%make%.exe .\WinDebug/variable.obj  .\WinDebug/rule.obj  .\WinDebug/remote-stub.obj  .\WinDebug/commands.obj  .\WinDebug/file.obj  .\WinDebug/getloadavg.obj  .\WinDebug/default.obj  .\WinDebug/signame.obj  .\WinDebug/expand.obj  .\WinDebug/dir.obj  .\WinDebug/main.obj  .\WinDebug/getopt1.obj  .\WinDebug/job.obj  .\WinDebug/read.obj  .\WinDebug/version.obj  .\WinDebug/getopt.obj  .\WinDebug/arscan.obj  .\WinDebug/remake.obj  .\WinDebug/hash.obj  .\WinDebug/strcache.obj  .\WinDebug/misc.obj  .\WinDebug/ar.obj  .\WinDebug/function.obj  .\WinDebug/vpath.obj  .\WinDebug/implicit.obj  .\WinDebug/dirent.obj  .\WinDebug/glob.obj  .\WinDebug/fnmatch.obj  .\WinDebug/pathstuff.obj
    7392echo kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib w32\subproc\windebug\subproc.lib >>link.dbg
    7493link.exe /NOLOGO /SUBSYSTEM:console /INCREMENTAL:yes /PDB:.\WinDebug/%make%.pdb /DEBUG /MACHINE:I386 /OUT:.\WinDebug/%make%.exe @link.dbg
     
    7796if not exist .\WinRel\nul mkdir .\WinRel
    7897echo on
    79 cl.exe /nologo /MT /W3 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /D TIVOLI /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c variable.c
     98cl.exe /nologo /MT /W4 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /D TIVOLI /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c variable.c
    8099echo WinRel\variable.obj >>link.rel
    81 cl.exe /nologo /MT /W3 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c rule.c
     100cl.exe /nologo /MT /W4 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c rule.c
    82101echo WinRel\rule.obj >>link.rel
    83 cl.exe /nologo /MT /W3 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c remote-stub.c
     102cl.exe /nologo /MT /W4 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c remote-stub.c
    84103echo WinRel\remote-stub.obj >>link.rel
    85 cl.exe /nologo /MT /W3 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c commands.c
     104cl.exe /nologo /MT /W4 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c commands.c
    86105echo WinRel\commands.obj >>link.rel
    87 cl.exe /nologo /MT /W3 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c file.c
     106cl.exe /nologo /MT /W4 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c file.c
    88107echo WinRel\file.obj >>link.rel
    89 cl.exe /nologo /MT /W3 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c getloadavg.c
     108cl.exe /nologo /MT /W4 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c getloadavg.c
    90109echo WinRel\getloadavg.obj >>link.rel
    91 cl.exe /nologo /MT /W3 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c default.c
     110cl.exe /nologo /MT /W4 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c default.c
    92111echo WinRel\default.obj >>link.rel
    93 cl.exe /nologo /MT /W3 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c signame.c
     112cl.exe /nologo /MT /W4 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c signame.c
    94113echo WinRel\signame.obj >>link.rel
    95 cl.exe /nologo /MT /W3 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c expand.c
     114cl.exe /nologo /MT /W4 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c expand.c
    96115echo WinRel\expand.obj >>link.rel
    97 cl.exe /nologo /MT /W3 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c dir.c
     116cl.exe /nologo /MT /W4 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c dir.c
    98117echo WinRel\dir.obj >>link.rel
    99 cl.exe /nologo /MT /W3 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c main.c
     118cl.exe /nologo /MT /W4 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c main.c
    100119echo WinRel\main.obj >>link.rel
    101 cl.exe /nologo /MT /W3 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c getopt1.c
     120cl.exe /nologo /MT /W4 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c getopt1.c
    102121echo WinRel\getopt1.obj >>link.rel
    103 cl.exe /nologo /MT /W3 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c job.c
     122cl.exe /nologo /MT /W4 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c job.c
    104123echo WinRel\job.obj >>link.rel
    105 cl.exe /nologo /MT /W3 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c read.c
     124cl.exe /nologo /MT /W4 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c read.c
    106125echo WinRel\read.obj >>link.rel
    107 cl.exe /nologo /MT /W3 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c version.c
     126cl.exe /nologo /MT /W4 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c version.c
    108127echo WinRel\version.obj >>link.rel
    109 cl.exe /nologo /MT /W3 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c getopt.c
     128cl.exe /nologo /MT /W4 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c getopt.c
    110129echo WinRel\getopt.obj >>link.rel
    111 cl.exe /nologo /MT /W3 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c arscan.c
     130cl.exe /nologo /MT /W4 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c arscan.c
    112131echo WinRel\arscan.obj >>link.rel
    113 cl.exe /nologo /MT /W3 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c remake.c
     132cl.exe /nologo /MT /W4 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c remake.c
    114133echo WinRel\remake.obj >>link.rel
    115 cl.exe /nologo /MT /W3 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c hash.c
     134cl.exe /nologo /MT /W4 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c hash.c
    116135echo WinRel\hash.obj >>link.rel
    117 cl.exe /nologo /MT /W3 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c misc.c
     136cl.exe /nologo /MT /W4 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c strcache.c
     137echo WinRel\strcache.obj >>link.rel
     138cl.exe /nologo /MT /W4 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c misc.c
    118139echo WinRel\misc.obj >>link.rel
    119 cl.exe /nologo /MT /W3 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c ar.c
     140cl.exe /nologo /MT /W4 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c ar.c
    120141echo WinRel\ar.obj >>link.rel
    121 cl.exe /nologo /MT /W3 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c function.c
     142cl.exe /nologo /MT /W4 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c function.c
    122143echo WinRel\function.obj >>link.rel
    123 cl.exe /nologo /MT /W3 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c vpath.c
     144cl.exe /nologo /MT /W4 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c vpath.c
    124145echo WinRel\vpath.obj >>link.rel
    125 cl.exe /nologo /MT /W3 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c implicit.c
     146cl.exe /nologo /MT /W4 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c implicit.c
    126147echo WinRel\implicit.obj >>link.rel
    127 cl.exe /nologo /MT /W3 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c  .\w32\compat\dirent.c
     148cl.exe /nologo /MT /W4 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c  .\w32\compat\dirent.c
    128149echo WinRel\dirent.obj >>link.rel
    129 cl.exe /nologo /MT /W3 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c  .\glob\glob.c
     150cl.exe /nologo /MT /W4 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c  .\glob\glob.c
    130151echo WinRel\glob.obj >>link.rel
    131 cl.exe /nologo /MT /W3 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c  .\glob\fnmatch.c
     152cl.exe /nologo /MT /W4 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c  .\glob\fnmatch.c
    132153echo WinRel\fnmatch.obj >>link.rel
    133 cl.exe /nologo /MT /W3 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c  .\w32\pathstuff.c
     154cl.exe /nologo /MT /W4 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c  .\w32\pathstuff.c
    134155echo WinRel\pathstuff.obj >>link.rel
    135156echo off
    136157echo "Linking WinRel/%make%.exe"
    137 rem link.exe kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib w32\subproc\winrel\subproc.lib /NOLOGO /SUBSYSTEM:console /INCREMENTAL:no /PDB:.\WinRel/%make%.pdb /MACHINE:I386 /OUT:.\WinRel/%make%.exe .\WinRel/variable.obj  .\WinRel/rule.obj  .\WinRel/remote-stub.obj  .\WinRel/commands.obj  .\WinRel/file.obj  .\WinRel/getloadavg.obj  .\WinRel/default.obj  .\WinRel/signame.obj  .\WinRel/expand.obj  .\WinRel/dir.obj  .\WinRel/main.obj  .\WinRel/getopt1.obj  .\WinRel/job.obj  .\WinRel/read.obj  .\WinRel/version.obj  .\WinRel/getopt.obj  .\WinRel/arscan.obj  .\WinRel/remake.obj  .\WinRel/misc.obj  .\WinRel/hash.obj  .\WinRel/ar.obj  .\WinRel/function.obj  .\WinRel/vpath.obj  .\WinRel/implicit.obj  .\WinRel/dirent.obj  .\WinRel/glob.obj  .\WinRel/fnmatch.obj  .\WinRel/pathstuff.obj
     158rem link.exe kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib w32\subproc\winrel\subproc.lib /NOLOGO /SUBSYSTEM:console /INCREMENTAL:no /PDB:.\WinRel/%make%.pdb /MACHINE:I386 /OUT:.\WinRel/%make%.exe .\WinRel/variable.obj  .\WinRel/rule.obj  .\WinRel/remote-stub.obj  .\WinRel/commands.obj  .\WinRel/file.obj  .\WinRel/getloadavg.obj  .\WinRel/default.obj  .\WinRel/signame.obj  .\WinRel/expand.obj  .\WinRel/dir.obj  .\WinRel/main.obj  .\WinRel/getopt1.obj  .\WinRel/job.obj  .\WinRel/read.obj  .\WinRel/version.obj  .\WinRel/getopt.obj  .\WinRel/arscan.obj  .\WinRel/remake.obj  .\WinRel/misc.obj  .\WinRel/hash.obj  .\WinRel/strcache.obj  .\WinRel/ar.obj  .\WinRel/function.obj  .\WinRel/vpath.obj  .\WinRel/implicit.obj  .\WinRel/dirent.obj  .\WinRel/glob.obj  .\WinRel/fnmatch.obj  .\WinRel/pathstuff.obj
    138159echo kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib w32\subproc\winrel\subproc.lib >>link.rel
    139160link.exe /NOLOGO /SUBSYSTEM:console /INCREMENTAL:no /PDB:.\WinRel/%make%.pdb /MACHINE:I386 /OUT:.\WinRel/%make%.exe @link.rel
    140161if not exist .\WinRel/%make%.exe echo "WinRel build failed"
    141162if exist .\WinRel/%make%.exe echo "WinRel build succeeded!"
     163set make=
     164GoTo BuildEnd
     165:GCCBuild
    142166echo on
     167gcc -mthreads -Wall -gstabs+ -ggdb3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c variable.c
     168gcc -mthreads -Wall -gstabs+ -ggdb3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c rule.c
     169gcc -mthreads -Wall -gstabs+ -ggdb3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c remote-stub.c
     170gcc -mthreads -Wall -gstabs+ -ggdb3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c commands.c
     171gcc -mthreads -Wall -gstabs+ -ggdb3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c file.c
     172gcc -mthreads -Wall -gstabs+ -ggdb3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c getloadavg.c
     173gcc -mthreads -Wall -gstabs+ -ggdb3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c default.c
     174gcc -mthreads -Wall -gstabs+ -ggdb3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c signame.c
     175gcc -mthreads -Wall -gstabs+ -ggdb3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c expand.c
     176gcc -mthreads -Wall -gstabs+ -ggdb3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c dir.c
     177gcc -mthreads -Wall -gstabs+ -ggdb3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c main.c
     178gcc -mthreads -Wall -gstabs+ -ggdb3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c getopt1.c
     179gcc -mthreads -Wall -gstabs+ -ggdb3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c job.c
     180gcc -mthreads -Wall -gstabs+ -ggdb3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c read.c
     181gcc -mthreads -Wall -gstabs+ -ggdb3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c version.c
     182gcc -mthreads -Wall -gstabs+ -ggdb3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c getopt.c
     183gcc -mthreads -Wall -gstabs+ -ggdb3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c arscan.c
     184gcc -mthreads -Wall -gstabs+ -ggdb3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c remake.c
     185gcc -mthreads -Wall -gstabs+ -ggdb3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c hash.c
     186gcc -mthreads -Wall -gstabs+ -ggdb3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c strcache.c
     187gcc -mthreads -Wall -gstabs+ -ggdb3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c misc.c
     188gcc -mthreads -Wall -gstabs+ -ggdb3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c ar.c
     189gcc -mthreads -Wall -gstabs+ -ggdb3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c function.c
     190gcc -mthreads -Wall -gstabs+ -ggdb3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c vpath.c
     191gcc -mthreads -Wall -gstabs+ -ggdb3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c implicit.c
     192gcc -mthreads -Wall -gstabs+ -ggdb3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c ./glob/glob.c -o glob.o
     193gcc -mthreads -Wall -gstabs+ -ggdb3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c ./glob/fnmatch.c -o fnmatch.o
     194gcc -mthreads -Wall -gstabs+ -ggdb3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c ./w32/pathstuff.c -o pathstuff.o
     195gcc -mthreads -gstabs+ -ggdb3 -o gnumake.exe variable.o rule.o remote-stub.o commands.o file.o getloadavg.o default.o signame.o expand.o dir.o main.o getopt1.o job.o read.o version.o getopt.o arscan.o remake.o misc.o hash.o strcache.o ar.o function.o vpath.o implicit.o glob.o fnmatch.o pathstuff.o w32_misc.o sub_proc.o w32err.o -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -luuid -lodbc32 -lodbccp32
     196:BuildEnd
     197echo on
  • vendor/gnumake/current/commands.c

    r280 r501  
    11/* Command processing for GNU Make.
    2 Copyright (C) 1988,89,91,92,93,94,95,96,97 Free Software Foundation, Inc.
     2Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
     31998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software
     4Foundation, Inc.
    35This file is part of GNU Make.
    46
    5 GNU Make is free software; you can redistribute it and/or modify
    6 it under the terms of the GNU General Public License as published by
    7 the Free Software Foundation; either version 2, or (at your option)
    8 any later version.
    9 
    10 GNU Make is distributed in the hope that it will be useful,
    11 but WITHOUT ANY WARRANTY; without even the implied warranty of
    12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    13 GNU General Public License for more details.
    14 
    15 You should have received a copy of the GNU General Public License
    16 along with GNU Make; see the file COPYING.  If not, write to
    17 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    18 Boston, MA 02111-1307, USA.  */
     7GNU Make is free software; you can redistribute it and/or modify it under the
     8terms of the GNU General Public License as published by the Free Software
     9Foundation; either version 2, or (at your option) any later version.
     10
     11GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     12WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     13A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     14
     15You should have received a copy of the GNU General Public License along with
     16GNU Make; see the file COPYING.  If not, write to the Free Software
     17Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
    1918
    2019#include "make.h"
     
    2423#include "job.h"
    2524#include "commands.h"
     25#ifdef WINDOWS32
     26#include <windows.h>
     27#include "w32err.h"
     28#endif
    2629
    2730#if VMS
     
    156159
    157160    if (plus_len > plus_max)
    158       plus_value = (char *) xmalloc (plus_max = plus_len);
     161      plus_value = xrealloc (plus_value, plus_max = plus_len);
    159162    cp = plus_value;
    160163
     
    205208
    206209    if (qmark_len > qmark_max)
    207       qmark_value = (char *) xmalloc (qmark_max = qmark_len);
     210      qmark_value = xrealloc (qmark_value, qmark_max = qmark_len);
    208211    qp = qmark_value;
    209212
    210213    if (bar_len > bar_max)
    211       bar_value = (char *) xmalloc (bar_max = bar_len);
     214      bar_value = xrealloc (bar_value, bar_max = bar_len);
    212215    bp = bar_value;
    213216
     
    425428  exit (10);
    426429#else /* not Amiga */
     430#ifdef WINDOWS32
     431  extern HANDLE main_thread;
     432
     433  /* Windows creates a sperate thread for handling Ctrl+C, so we need
     434     to suspend the main thread, or else we will have race conditions
     435     when both threads call reap_children.  */
     436  if (main_thread)
     437    {
     438      DWORD susp_count = SuspendThread (main_thread);
     439
     440      if (susp_count != 0)
     441        fprintf (stderr, "SuspendThread: suspend count = %ld\n", susp_count);
     442      else if (susp_count == (DWORD)-1)
     443        {
     444          DWORD ierr = GetLastError ();
     445
     446          fprintf (stderr, "SuspendThread: error %ld: %s\n",
     447                   ierr, map_windows32_error_to_string (ierr));
     448        }
     449    }
     450#endif
    427451  handling_fatal_signal = 1;
    428452
     
    487511
    488512#ifdef WINDOWS32
    489   /* Cannot call W32_kill with a pid (it needs a handle) */
    490   exit (EXIT_FAILURE);
     513  if (main_thread)
     514    CloseHandle (main_thread);
     515  /* Cannot call W32_kill with a pid (it needs a handle).  The exit
     516     status of 130 emulates what happens in Bash.  */
     517  exit (130);
    491518#else
    492519  /* Signal the same code; this time it will really be fatal.  The signal
  • vendor/gnumake/current/commands.h

    r280 r501  
    11/* Definition of data structures describing shell commands for GNU Make.
    2 Copyright (C) 1988, 1989, 1991, 1993 Free Software Foundation, Inc.
     2Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
     31998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software
     4Foundation, Inc.
    35This file is part of GNU Make.
    46
    5 GNU Make is free software; you can redistribute it and/or modify
    6 it under the terms of the GNU General Public License as published by
    7 the Free Software Foundation; either version 2, or (at your option)
    8 any later version.
     7GNU Make is free software; you can redistribute it and/or modify it under the
     8terms of the GNU General Public License as published by the Free Software
     9Foundation; either version 2, or (at your option) any later version.
    910
    10 GNU Make is distributed in the hope that it will be useful,
    11 but WITHOUT ANY WARRANTY; without even the implied warranty of
    12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    13 GNU General Public License for more details.
     11GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     12WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     13A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
    1414
    15 You should have received a copy of the GNU General Public License
    16 along with GNU Make; see the file COPYING.  If not, write to
    17 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    18 Boston, MA 02111-1307, USA.  */
     15You should have received a copy of the GNU General Public License along with
     16GNU Make; see the file COPYING.  If not, write to the Free Software
     17Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
    1918
    2019/* Structure that gives the commands to make a file
  • vendor/gnumake/current/config.ami

    r152 r501  
    1 /* config.h.in.  Generated automatically from configure.in by autoheader.  */
     1/* config.h -- hand-massaged for Amiga                                  -*-C-*-
     2Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
     32005, 2006 Free Software Foundation, Inc.
     4This file is part of GNU Make.
     5
     6GNU Make is free software; you can redistribute it and/or modify it under the
     7terms of the GNU General Public License as published by the Free Software
     8Foundation; either version 2, or (at your option) any later version.
     9
     10GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     11WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     12A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     13
     14You should have received a copy of the GNU General Public License along with
     15GNU Make; see the file COPYING.  If not, write to the Free Software
     16Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
    217
    318/* Define if on AIX 3.
     
    176191
    177192/* Version of this package (needed by automake) */
    178 #define VERSION "3.81beta1"
     193#define VERSION "3.81"
    179194
    180195/* Define to the name of the SCCS `get' command.  */
  • vendor/gnumake/current/config.h-vms

    r152 r501  
    1 /* config.h-vms. Generated by hand by Klaus Kämpf <[email protected]> */
     1/* config.h-vms. Generated by hand by Klaus Kämpf <[email protected]>      -*-C-*-
     2
     3Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
     42006 Free Software Foundation, Inc.
     5This file is part of GNU Make.
     6
     7GNU Make is free software; you can redistribute it and/or modify it under the
     8terms of the GNU General Public License as published by the Free Software
     9Foundation; either version 2, or (at your option) any later version.
     10
     11GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     12WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     13A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     14
     15You should have received a copy of the GNU General Public License along with
     16GNU Make; see the file COPYING.  If not, write to the Free Software
     17Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
     18
    219/* config.h.  Generated automatically by configure.  */
    320/* config.h.in.  Generated automatically from configure.in by autoheader.  */
     
    197214
    198215/* Version of this package (needed by automake) */
    199 #define VERSION "3.81beta1"
     216#define VERSION "3.81"
    200217
    201218/* Define to the name of the SCCS `get' command.  */
     
    351368#define HAVE_CASE_INSENSITIVE_FS 1
    352369
    353 /* VMS specific, define it if you want to use case sensitve targets */
     370/* VMS specific, define it if you want to use case sensitive targets */
    354371/* #undef WANT_CASE_SENSITIVE_TARGETS */
    355372
     
    384401#include <stdio.h>
    385402#include <unistd.h>
    386 #define getopt gnu_getopt
    387 #define optarg gnu_optarg
    388 #define optopt gnu_optopt
    389 #define optind gnu_optind
    390 #define opterr gnu_opterr
     403#define getopt   gnu_getopt
     404#define optarg   gnu_optarg
     405#define optopt   gnu_optopt
     406#define optind   gnu_optind
     407#define opterr   gnu_opterr
     408#define globfree gnu_globfree
     409#define glob     gnu_glob
    391410#endif
    392411
  • vendor/gnumake/current/config.h.W32

    r152 r501  
    1 /* config.h.in.  Generated automatically from configure.in by autoheader.  */
    2 
    3 /* Define if on AIX 3.
    4    System headers sometimes define this.
    5    We just want to avoid a redefinition error message.  */
    6 #ifndef _ALL_SOURCE
    7 /* #undef _ALL_SOURCE */
     1/* config.h.W32 -- hand-massaged config.h file for Windows builds       -*-C-*-
     2
     3Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
     42006 Free Software Foundation, Inc.
     5This file is part of GNU Make.
     6
     7GNU Make is free software; you can redistribute it and/or modify it under the
     8terms of the GNU General Public License as published by the Free Software
     9Foundation; either version 2, or (at your option) any later version.
     10
     11GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     12WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     13A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     14
     15You should have received a copy of the GNU General Public License along with
     16GNU Make; see the file COPYING.  If not, write to the Free Software
     17Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
     18
     19/* Suppress some Visual C++ warnings.
     20   Maybe after the code cleanup for ISO C we can remove some/all of these.  */
     21#if _MSC_VER > 1000
     22# pragma warning(disable:4100) /* unreferenced formal parameter */
     23# pragma warning(disable:4102) /* unreferenced label */
     24# pragma warning(disable:4127) /* conditional expression is constant */
     25# pragma warning(disable:4131) /* uses old-style declarator */
     26# pragma warning(disable:4702) /* unreachable code */
    827#endif
    928
    10 /* Define if using alloca.c.  */
     29/* Define to 1 if the `closedir' function returns void instead of `int'. */
     30/* #undef CLOSEDIR_VOID */
     31
     32/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP
     33   systems. This function is required for `alloca.c' support on those systems.
     34   */
     35/* #undef CRAY_STACKSEG_END */
     36
     37/* Define to 1 if using `alloca.c'. */
    1138/* #undef C_ALLOCA */
    1239
    13 /* Define if the closedir function returns void instead of int.  */
    14 /* #undef CLOSEDIR_VOID */
    15 
    16 /* Define to empty if the keyword does not work.  */
    17 /* #undef const */
    18 
    19 /* Define to one of _getb67, GETB67, getb67 for Cray-2 and Cray-YMP systems.
    20    This function is required for alloca.c support on those systems.  */
    21 /* #undef CRAY_STACKSEG_END */
    22 
    23 /* Define for DGUX with <sys/dg_sys_info.h>.  */
     40/* Define to 1 if using `getloadavg.c'. */
     41/*#define C_GETLOADAVG 1*/
     42
     43/* Define to 1 for DGUX with <sys/dg_sys_info.h>. */
    2444/* #undef DGUX */
    2545
    26 /* Define if the `getloadavg' function needs to be run setuid or setgid.  */
     46/* Define to 1 if translation of program messages to the user's native
     47   language is requested. */
     48/* #undef ENABLE_NLS */
     49
     50/* Use high resolution file timestamps if nonzero. */
     51#define FILE_TIMESTAMP_HI_RES 0
     52
     53/* Define to 1 if the `getloadavg' function needs to be run setuid or setgid.
     54   */
    2755/* #undef GETLOADAVG_PRIVILEGED */
    2856
    29 /* Define to `unsigned long' or `unsigned long long'
    30    if <inttypes.h> doesn't define.  */
    31 #define uintmax_t unsigned long
    32 
    33 /* Define to `int' if <sys/types.h> doesn't define.  */
    34 #undef gid_t
    35 #define gid_t int
    36 
    37 /* Define if you have alloca, as a function or macro.  */
    38 #undef HAVE_ALLOCA
     57/* Define to 1 if you have `alloca', as a function or macro. */
    3958#define HAVE_ALLOCA 1
    4059
    41 /* Define if you have <alloca.h> and it should be used (not on Ultrix).  */
     60/* Define to 1 if you have <alloca.h> and it should be used (not on Ultrix).
     61   */
    4262/* #undef HAVE_ALLOCA_H */
    4363
    44 /* Define if you don't have vprintf but do have _doprnt.  */
     64/* Define if your compiler conforms to the ANSI C standard. */
     65#define HAVE_ANSI_COMPILER 1
     66
     67/* Define to 1 if you have the `bsd_signal' function. */
     68/* #undef HAVE_BSD_SIGNAL */
     69
     70/* Use case insensitive file names */
     71/* #undef HAVE_CASE_INSENSITIVE_FS */
     72
     73/* Define if you have the clock_gettime function. */
     74/* #undef HAVE_CLOCK_GETTIME */
     75
     76/* Define if the GNU dcgettext() function is already present or preinstalled.
     77   */
     78/* #undef HAVE_DCGETTEXT */
     79
     80/* Define to 1 if you have the <dirent.h> header file, and it defines `DIR'.
     81   */
     82#define HAVE_DIRENT_H 1
     83
     84/* Define to 1 if you don't have `vprintf' but do have `_doprnt.' */
    4585/* #undef HAVE_DOPRNT */
    4686
    47 /* Define if your system has a working fnmatch function.  */
    48 /* #undef HAVE_FNMATCH */
    49 
    50 /* Define if your system has its own `getloadavg' function.  */
     87/* Use platform specific coding */
     88#define HAVE_DOS_PATHS 1
     89
     90/* Define to 1 if you have the `dup2' function. */
     91#define HAVE_DUP2 1
     92
     93/* Define to 1 if you have the <fcntl.h> header file. */
     94#define HAVE_FCNTL_H 1
     95
     96/* Define to 1 if you have the `fdopen' function. */
     97/*#define HAVE_FDOPEN 1*/
     98
     99/* Define to 1 if you have the `fork' function. */
     100/* #undef HAVE_FORK */
     101
     102/* Define to 1 if you have the `getcwd' function.  */
     103#define HAVE_GETCWD 1
     104
     105/* Define to 1 if you have the `getgroups' function. */
     106/* #undef HAVE_GETGROUPS */
     107
     108/* Define to 1 if you have the `gethostbyname' function. */
     109/* #undef HAVE_GETHOSTBYNAME */
     110
     111/* Define to 1 if you have the `gethostname' function. */
     112/* #undef HAVE_GETHOSTNAME */
     113
     114/* Define to 1 if you have the `getloadavg' function. */
    51115/* #undef HAVE_GETLOADAVG */
    52116
    53 /* Define if you have the getmntent function.  */
    54 /* #undef HAVE_GETMNTENT */
    55 
    56 /* Define if the `long double' type works.  */
    57 /* #undef HAVE_LONG_DOUBLE */
    58 
    59 /* Define if you support file names longer than 14 characters.  */
    60 #undef HAVE_LONG_FILE_NAMES
    61 #define HAVE_LONG_FILE_NAMES 1
    62 
    63 /* Define if you have a working `mmap' system call.  */
    64 /* #undef HAVE_MMAP */
    65 
    66 /* Define if system calls automatically restart after interruption
    67    by a signal.  */
    68 /* #undef HAVE_RESTARTABLE_SYSCALLS */
    69 
    70 /* Define if your struct stat has st_blksize.  */
    71 /* #undef HAVE_ST_BLKSIZE */
    72 
    73 /* Define if your struct stat has st_blocks.  */
    74 /* #undef HAVE_ST_BLOCKS */
    75 
    76 /* Define if you have the strcoll function and it is properly defined.  */
    77 #undef HAVE_STRCOLL
     117/* Define to 1 if you have the `getrlimit' function. */
     118/* #undef HAVE_GETRLIMIT */
     119
     120/* Define if the GNU gettext() function is already present or preinstalled. */
     121/* #undef HAVE_GETTEXT */
     122
     123/* Define if you have a standard gettimeofday function */
     124/* #undef HAVE_GETTIMEOFDAY */
     125
     126/* Define if you have the iconv() function. */
     127/* #undef HAVE_ICONV */
     128
     129/* Define to 1 if you have the <inttypes.h> header file. */
     130/*#define HAVE_INTTYPES_H 1*/
     131
     132/* Define to 1 if you have the `dgc' library (-ldgc). */
     133/* #undef HAVE_LIBDGC */
     134
     135/* Define to 1 if you have the `kstat' library (-lkstat). */
     136/* #undef HAVE_LIBKSTAT */
     137
     138/* Define to 1 if you have the <limits.h> header file. */
     139#define HAVE_LIMITS_H 1
     140
     141/* Define to 1 if you have the <locale.h> header file. */
     142/*#define HAVE_LOCALE_H 1*/
     143
     144/* Define to 1 if you have the <mach/mach.h> header file. */
     145/* #undef HAVE_MACH_MACH_H */
     146
     147/* Define to 1 if you have the `memmove' function. */
     148#define HAVE_MEMMOVE 1
     149
     150/* Define to 1 if you have the <memory.h> header file. */
     151#define HAVE_MEMORY_H 1
     152
     153/* Define to 1 if you have the `mkstemp' function. */
     154/* #undef HAVE_MKSTEMP */
     155
     156/* Define to 1 if you have the `mktemp' function. */
     157#define HAVE_MKTEMP 1
     158
     159/* Define to 1 if you have the <ndir.h> header file, and it defines `DIR'. */
     160/* #undef HAVE_NDIR_H */
     161
     162/* Define to 1 if you have the <nlist.h> header file. */
     163/* #undef HAVE_NLIST_H */
     164
     165/* Define to 1 if you have the `pipe' function. */
     166/* #undef HAVE_PIPE */
     167
     168/* Define to 1 if you have the `pstat_getdynamic' function. */
     169/* #undef HAVE_PSTAT_GETDYNAMIC */
     170
     171/* Define to 1 if you have the `realpath' function. */
     172/* #undef HAVE_REALPATH */
     173
     174/* Define if <signal.h> defines the SA_RESTART constant. */
     175/* #undef HAVE_SA_RESTART */
     176
     177/* Define to 1 if you have the `setegid' function. */
     178/* #undef HAVE_SETEGID */
     179
     180/* Define to 1 if you have the `seteuid' function. */
     181/* #undef HAVE_SETEUID */
     182
     183/* Define to 1 if you have the `setlinebuf' function. */
     184/* #undef HAVE_SETLINEBUF */
     185
     186/* Define to 1 if you have the `setlocale' function. */
     187/*#define HAVE_SETLOCALE 1*/
     188
     189/* Define to 1 if you have the `setregid' function. */
     190/* #undef HAVE_SETREGID */
     191
     192/* Define to 1 if you have the `setreuid' function. */
     193/* #undef HAVE_SETREUID */
     194
     195/* Define to 1 if you have the `setrlimit' function. */
     196/* #undef HAVE_SETRLIMIT */
     197
     198/* Define to 1 if you have the `setvbuf' function. */
     199/*#define HAVE_SETVBUF 1 */
     200
     201/* Define to 1 if you have the `sigaction' function. */
     202/* #undef HAVE_SIGACTION */
     203
     204/* Define to 1 if you have the `sigsetmask' function. */
     205/* #undef HAVE_SIGSETMASK */
     206
     207/* Define to 1 if you have the `socket' function. */
     208/* #undef HAVE_SOCKET */
     209
     210/* Define to 1 if you have the <stdarg.h> header file. */
     211#define HAVE_STDARG_H 1
     212
     213/* Define to 1 if you have the <stdint.h> header file. */
     214/*#define HAVE_STDINT_H 1*/
     215
     216/* Define to 1 if you have the <stdlib.h> header file. */
     217#define HAVE_STDLIB_H 1
     218
     219/* Define to 1 if you have the `strcasecmp' function. */
     220/* #undef HAVE_STRCASECMP */
     221
     222/* Define to 1 if you have the `strchr' function. */
     223#define HAVE_STRCHR 1
     224
     225/* Define to 1 if you have the `strcoll' function and it is properly defined.
     226   */
    78227#define HAVE_STRCOLL 1
    79228
    80 /* Define if your struct stat has st_rdev.  */
    81 #undef HAVE_ST_RDEV
    82 #define HAVE_ST_RDEV 1
    83 
    84 /* Define if you have the strftime function.  */
    85 #undef HAVE_STRFTIME
    86 #define HAVE_STRFTIME 1
    87 
    88 /* Define if you have <sys/wait.h> that is POSIX.1 compatible.  */
     229/* Define to 1 if you have the `strdup' function. */
     230/* #define HAVE_STRDUP 1*/
     231
     232/* Define to 1 if you have the `strerror' function. */
     233#define HAVE_STRERROR 1
     234
     235/* Define to 1 if you have the <strings.h> header file. */
     236/* #define HAVE_STRINGS_H 1 */
     237
     238/* Define to 1 if you have the <string.h> header file. */
     239#define HAVE_STRING_H 1
     240
     241/* Define to 1 if you have the `strsignal' function. */
     242/* #undef HAVE_STRSIGNAL */
     243
     244/* Define to 1 if `n_un.n_name' is member of `struct nlist'. */
     245/* #undef HAVE_STRUCT_NLIST_N_UN_N_NAME */
     246
     247/* Define to 1 if you have the <sys/dir.h> header file, and it defines `DIR'.
     248   */
     249/* #undef HAVE_SYS_DIR_H */
     250
     251/* Define to 1 if you have the <sys/ndir.h> header file, and it defines `DIR'.
     252   */
     253/* #undef HAVE_SYS_NDIR_H */
     254
     255/* Define to 1 if you have the <sys/param.h> header file. */
     256/* #define HAVE_SYS_PARAM_H 1 */
     257
     258/* Define to 1 if you have the <sys/resource.h> header file. */
     259/* #undef HAVE_SYS_RESOURCE_H */
     260
     261/* Define to 1 if you have the <sys/stat.h> header file. */
     262/* #define HAVE_SYS_STAT_H 1 */
     263
     264/* Define to 1 if you have the <sys/timeb.h> header file. */
     265/*#define HAVE_SYS_TIMEB_H 1*/
     266
     267/* Define to 1 if you have the <sys/time.h> header file. */
     268/*#define HAVE_SYS_TIME_H 1*/
     269
     270/* Define to 1 if you have the <sys/types.h> header file. */
     271/*#define HAVE_SYS_TYPES_H 1*/
     272
     273/* Define to 1 if you have the <sys/wait.h> header file. */
    89274/* #undef HAVE_SYS_WAIT_H */
    90275
    91 /* Define if your struct tm has tm_zone.  */
    92 /* #undef HAVE_TM_ZONE */
    93 
    94 /* Define if you don't have tm_zone but do have the external array
    95    tzname.  */
    96 #undef HAVE_TZNAME
    97 #define HAVE_TZNAME 1
    98 
    99 /* Define if you have <unistd.h>.  */
    100 /* #undef HAVE_UNISTD_H */
    101 
    102 /* Define if utime(file, NULL) sets file's timestamp to the present.  */
    103 #undef HAVE_UTIME_NULL
    104 #define HAVE_UTIME_NULL 1
    105 
    106 /* Define if you have <vfork.h>.  */
     276/* Define this if you have the \`union wait' type in <sys/wait.h>. */
     277/* #undef HAVE_UNION_WAIT */
     278
     279/* Define to 1 if you have the <unistd.h> header file. */
     280/* #define HAVE_UNISTD_H 1*/
     281
     282/* Define to 1 if you have the <varargs.h> header file. */
     283/* #undef HAVE_VARARGS_H */
     284
     285/* Define to 1 if you have the `vfork' function. */
     286/* #undef HAVE_VFORK */
     287
     288/* Define to 1 if you have the <vfork.h> header file. */
    107289/* #undef HAVE_VFORK_H */
    108290
    109 /* Define if you have the vprintf function.  */
    110 #undef HAVE_VPRINTF
     291/* Define to 1 if you have the `vprintf' function. */
    111292#define HAVE_VPRINTF 1
    112293
    113 /* Define if you have the wait3 system call.  */
     294
     295/* Define to 1 if you have the `wait3' function. */
    114296/* #undef HAVE_WAIT3 */
    115297
    116 /* Define if on MINIX.  */
    117 /* #undef _MINIX */
    118 
    119 /* Define if your struct nlist has an n_un member.  */
     298/* Define to 1 if you have the `waitpid' function. */
     299/* #undef HAVE_WAITPID */
     300
     301/* Define to 1 if `fork' works. */
     302/* #undef HAVE_WORKING_FORK */
     303
     304/* Define to 1 if `vfork' works. */
     305/* #undef HAVE_WORKING_VFORK */
     306
     307/* Build host information. */
     308#define MAKE_HOST "Windows32"
     309
     310/* Define this to enable job server support in GNU make. */
     311/* #undef MAKE_JOBSERVER */
     312
     313/* Define to 1 if your `struct nlist' has an `n_un' member. Obsolete, depend
     314   on `HAVE_STRUCT_NLIST_N_UN_N_NAME */
    120315/* #undef NLIST_NAME_UNION */
    121316
    122 /* Define if you have <nlist.h>. */
     317/* Define if struct nlist.n_name is a pointer rather than an array. */
    123318/* #undef NLIST_STRUCT */
    124319
    125 /* Define if your C compiler doesn't accept -c and -o together. */
     320/* Define to 1 if your C compiler doesn't accept -c and -o together. */
    126321/* #undef NO_MINUS_C_MINUS_O */
    127322
    128 /* Define to `int' if <sys/types.h> doesn't define.  */
    129 #undef pid_t
    130 #define pid_t int
    131 
    132 /* Define if the system does not provide POSIX.1 features except
    133    with this defined.  */
    134 /* #undef _POSIX_1_SOURCE */
    135 
    136 /* Define if you need to in order for stat and other things to work.  */
    137 #undef _POSIX_SOURCE
    138 #define _POSIX_SOURCE 1
    139 
    140 /* Define as the return type of signal handlers (int or void).  */
    141 #undef RETSIGTYPE
     323/* Name of this package (needed by automake) */
     324#define PACKAGE "make"
     325
     326/* Define to 1 if the C compiler supports function prototypes. */
     327#define PROTOTYPES 1
     328
     329/* Define as the return type of signal handlers (`int' or `void'). */
    142330#define RETSIGTYPE void
    143331
    144 /* Define if the setvbuf function takes the buffering type as its second
    145    argument and the buffer pointer as the third, as on System V
    146    before release 3.  */
     332/* Define to the name of the SCCS 'get' command. */
     333#define SCCS_GET "echo no sccs get"
     334
     335/* Define this if the SCCS 'get' command understands the '-G<file>' option. */
     336/* #undef SCCS_GET_MINUS_G */
     337
     338/* Define to 1 if the `setvbuf' function takes the buffering type as its
     339   second argument and the buffer pointer as the third, as on System V before
     340   release 3. */
    147341/* #undef SETVBUF_REVERSED */
    148342
     
    152346        STACK_DIRECTION > 0 => grows toward higher addresses
    153347        STACK_DIRECTION < 0 => grows toward lower addresses
    154         STACK_DIRECTION = 0 => direction of growth unknown
    155  */
     348        STACK_DIRECTION = 0 => direction of growth unknown */
    156349/* #undef STACK_DIRECTION */
    157350
    158 /* Define if the `S_IS*' macros in <sys/stat.h> do not work properly. */
     351/* Define to 1 if the `S_IS*' macros in <sys/stat.h> do not work properly. */
    159352/* #undef STAT_MACROS_BROKEN */
    160353
    161 /* Define if your compiler conforms to the ANSI C standard. */
    162 #define HAVE_ANSI_COMPILER 1
    163 
    164 /* Define to 1 if you have the <stdarg.h> header file. */
    165 #define HAVE_STDARG_H 1
    166 
    167 /* Define if you have the ANSI C header files.  */
    168 #undef STDC_HEADERS
     354/* Define to 1 if you have the ANSI C header files. */
    169355#define STDC_HEADERS 1
    170356
    171 /* Define on System V Release 4.  */
     357/* Define if struct stat contains a nanoseconds field */
     358/* #undef ST_MTIM_NSEC */
     359
     360/* Define to 1 on System V Release 4. */
    172361/* #undef SVR4 */
    173362
    174 /* Define if `sys_siglist' is declared by <signal.h>.  */
    175 /* #undef SYS_SIGLIST_DECLARED */
    176 
    177 /* Define to `int' if <sys/types.h> doesn't define.  */
    178 #undef uid_t
     363/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
     364/* #define TIME_WITH_SYS_TIME 1 */
     365
     366/* Define to 1 for Encore UMAX. */
     367/* #undef UMAX */
     368
     369/* Define to 1 for Encore UMAX 4.3 that has <inq_status/cpustats.h> instead of
     370   <sys/cpustats.h>. */
     371/* #undef UMAX4_3 */
     372
     373/* Version number of package */
     374#define VERSION "3.81"
     375
     376/* Define if using the dmalloc debugging malloc package */
     377/* #undef WITH_DMALLOC */
     378
     379/* Define to 1 if on AIX 3.
     380   System headers sometimes define this.
     381   We just want to avoid a redefinition error message.  */
     382#ifndef _ALL_SOURCE
     383/* # undef _ALL_SOURCE */
     384#endif
     385
     386/* Number of bits in a file offset, on hosts where this is settable. */
     387/* #undef _FILE_OFFSET_BITS */
     388
     389/* Define for large files, on AIX-style hosts. */
     390/* #undef _LARGE_FILES */
     391
     392/* Define to 1 if on MINIX. */
     393/* #undef _MINIX */
     394
     395/* Define to 2 if the system does not provide POSIX.1 features except with
     396   this defined. */
     397/* #undef _POSIX_1_SOURCE */
     398
     399/* Define to 1 if you need to in order for `stat' and other things to work. */
     400#define _POSIX_SOURCE 1
     401
     402/* Define like PROTOTYPES; this can be used by system headers. */
     403/*#define __PROTOTYPES 1*/
     404
     405/* Define to empty if `const' does not conform to ANSI C. */
     406/* #undef const */
     407
     408/* Define to `int' if <sys/types.h> doesn't define. */
     409#define gid_t int
     410
     411/* Define to `int' if <sys/types.h> does not define. */
     412#define pid_t int
     413
     414/* Define to `int' if <sys/types.h> doesn't define. */
    179415#define uid_t int
    180416
    181 /* Define for Encore UMAX.  */
    182 /* #undef UMAX */
    183 
    184 /* Define for Encore UMAX 4.3 that has <inq_status/cpustats.h>
    185    instead of <sys/cpustats.h>.  */
    186 /* #undef UMAX4_3 */
    187 
    188 /* Define vfork as fork if vfork does not work.  */
    189 /* #undef vfork */
    190 
    191 /* Name of this package (needed by automake) */
    192 #define PACKAGE "make"
    193 
    194 /* Version of this package (needed by automake) */
    195 #define VERSION "3.81beta1"
    196 
    197 /* Define to the name of the SCCS `get' command.  */
    198 #undef SCCS_GET
    199 #define SCCS_GET "echo no sccs get"
    200 
    201 /* Define to 1 if NLS is requested.  */
    202 /* #undef ENABLE_NLS */
    203 
    204 /* Define as 1 if you have dcgettext.  */
    205 /* #undef HAVE_DCGETTEXT */
    206 
    207 /* Define as 1 if you have gettext and don't want to use GNU gettext.  */
    208 /* #undef HAVE_GETTEXT */
    209 
    210 /* Define if your locale.h file contains LC_MESSAGES.  */
    211 /* #undef HAVE_LC_MESSAGES */
     417/* Define uintmax_t if not defined in <stdint.h> or <inttypes.h>. */
     418#define uintmax_t unsigned long
     419
     420/* Define as `fork' if `vfork' does not work. */
     421/*#define vfork fork*/
     422
     423/* Define to `unsigned long' or `unsigned long long'
     424   if <inttypes.h> doesn't define.  */
     425#define uintmax_t unsigned long
     426
     427/* Define if you support file names longer than 14 characters.  */
     428#define HAVE_LONG_FILE_NAMES 1
     429
     430/* Define if your struct stat has st_rdev.  */
     431#undef HAVE_ST_RDEV
     432#define HAVE_ST_RDEV 1
     433
     434/* Define if you have the strftime function.  */
     435#undef HAVE_STRFTIME
     436#define HAVE_STRFTIME 1
     437
     438/* Define if you have <sys/wait.h> that is POSIX.1 compatible.  */
     439/* #undef HAVE_SYS_WAIT_H */
     440
     441/* Define if your struct tm has tm_zone.  */
     442/* #undef HAVE_TM_ZONE */
     443
     444/* Define if you don't have tm_zone but do have the external array
     445   tzname.  */
     446#undef HAVE_TZNAME
     447#define HAVE_TZNAME 1
     448
     449/* Define if utime(file, NULL) sets file's timestamp to the present.  */
     450#undef HAVE_UTIME_NULL
     451#define HAVE_UTIME_NULL 1
    212452
    213453/* Define to the installation directory for locales.  */
    214454#define LOCALEDIR ""
    215 
    216 /* Define this if the SCCS `get' command understands the `-G<file>' option.  */
    217 /* #undef SCCS_GET_MINUS_G */
    218 
    219 /* Define this to enable job server support in GNU make.  */
    220 /* #undef MAKE_JOBSERVER */
    221 
    222 /* Define to be the nanoseconds member of struct stat's st_mtim,
    223    if it exists.  */
    224 /* #undef ST_MTIM_NSEC */
    225 
    226 /* Define this if the C library defines the variable `sys_siglist'.  */
    227 /* #undef HAVE_SYS_SIGLIST */
    228 
    229 /* Define this if the C library defines the variable `_sys_siglist'.  */
    230 /* #undef HAVE__SYS_SIGLIST */
    231 
    232 /* Define this if you have the `union wait' type in <sys/wait.h>.  */
    233 /* #undef HAVE_UNION_WAIT */
    234 
    235 /* Define if you have the dup2 function.  */
    236 #undef HAVE_DUP2
    237 #define HAVE_DUP2 1
    238 
    239 /* Define if you have the getcwd function.  */
    240 #undef HAVE_GETCWD
    241 #define HAVE_GETCWD 1
    242 
    243 /* Define if you have the getgroups function.  */
    244 /* #undef HAVE_GETGROUPS */
    245 
    246 /* Define if you have the gethostbyname function.  */
    247 /* #undef HAVE_GETHOSTBYNAME */
    248 
    249 /* Define if you have the gethostname function.  */
    250 /* #undef HAVE_GETHOSTNAME */
    251 
    252 /* Define if you have the getloadavg function.  */
    253 /* #undef HAVE_GETLOADAVG */
    254 
    255 /* Define if you have the memmove function.  */
    256 #undef HAVE_MEMMOVE
    257 #define HAVE_MEMMOVE 1
    258 
    259 /* Define if you have the mktemp function.  */
    260 #undef HAVE_MKTEMP
    261 #define HAVE_MKTEMP 1
    262 
    263 /* Define if you have the psignal function.  */
    264 /* #undef HAVE_PSIGNAL */
    265 
    266 /* Define if you have the pstat_getdynamic function.  */
    267 /* #undef HAVE_PSTAT_GETDYNAMIC */
    268 
    269 /* Define if you have the setegid function.  */
    270 /* #undef HAVE_SETEGID */
    271 
    272 /* Define if you have the seteuid function.  */
    273 /* #undef HAVE_SETEUID */
    274 
    275 /* Define if you have the setlinebuf function.  */
    276 /* #undef HAVE_SETLINEBUF */
    277 
    278 /* Define if you have the setregid function.  */
    279 /* #undef HAVE_SETREGID */
    280 
    281 /* Define if you have the setreuid function.  */
    282 /* #undef HAVE_SETREUID */
    283 
    284 /* Define if you have the sigsetmask function.  */
    285 /* #undef HAVE_SIGSETMASK */
    286 
    287 /* Define if you have the socket function.  */
    288 /* #undef HAVE_SOCKET */
    289 
    290 /* Define if you have the strcasecmp function.  */
    291 /* #undef HAVE_STRCASECMP */
    292 
    293 /* Define if you have the strerror function.  */
    294 #undef HAVE_STRERROR
    295 #define HAVE_STRERROR 1
    296 
    297 /* Define if you have the strsignal function.  */
    298 /* #undef HAVE_STRSIGNAL */
    299 
    300 /* Define if you have the wait3 function.  */
    301 /* #undef HAVE_WAIT3 */
    302 
    303 /* Define if you have the waitpid function.  */
    304 /* #undef HAVE_WAITPID */
    305 
    306 /* Define if you have the <dirent.h> header file.  */
    307 #undef HAVE_DIRENT_H
    308 #define HAVE_DIRENT_H 1
    309 
    310 /* Define if you have the <fcntl.h> header file.  */
    311 #undef HAVE_FCNTL_H
    312 #define HAVE_FCNTL_H 1
    313 
    314 /* Define if you have the <limits.h> header file.  */
    315 #undef HAVE_LIMITS_H
    316 #define HAVE_LIMITS_H 1
    317 
    318 /* Define if you have the <mach/mach.h> header file.  */
    319 /* #undef HAVE_MACH_MACH_H */
    320 
    321 /* Define if you have the <memory.h> header file.  */
    322 #undef HAVE_MEMORY_H
    323 #define HAVE_MEMORY_H 1
    324 
    325 /* Define if you have the <ndir.h> header file.  */
    326 /* #undef HAVE_NDIR_H */
    327 
    328 /* Define if you have the <string.h> header file.  */
    329 #undef HAVE_STRING_H
    330 #define HAVE_STRING_H 1
    331 
    332 /* Define if you have the <sys/dir.h> header file.  */
    333 /* #undef HAVE_SYS_DIR_H */
    334 
    335 /* Define if you have the <sys/ndir.h> header file.  */
    336 /* #undef HAVE_SYS_NDIR_H */
    337 
    338 /* Define if you have the <sys/param.h> header file.  */
    339 /* #undef HAVE_SYS_PARAM_H */
    340 
    341 /* Define if you have the <sys/timeb.h> header file.  */
    342 #undef HAVE_SYS_TIMEB_H
    343 #define HAVE_SYS_TIMEB_H 1
    344 
    345 /* Define if you have the <sys/wait.h> header file.  */
    346 /* #undef HAVE_SYS_WAIT_H */
    347 
    348 /* Define if you have the <unistd.h> header file.  */
    349 /* #undef HAVE_UNISTD_H */
    350 
    351 /* Define if you have the dgc library (-ldgc).  */
    352 /* #undef HAVE_LIBDGC */
    353 
    354 /* Define if you have the kstat library (-lkstat).  */
    355 /* #undef HAVE_LIBKSTAT */
    356 
    357 /* Define if you have the sun library (-lsun).  */
    358 /* #undef HAVE_LIBSUN */
    359 
    360 /* Use high resolution file timestamps if nonzero. */
    361 #define FILE_TIMESTAMP_HI_RES 0
    362 
    363 /* Build host information. */
    364 #define MAKE_HOST "Windows32"
    365 
    366 /* Grok DOS paths (drive specs and backslash path element separators) */
    367 #define HAVE_DOS_PATHS
    368455
    369456/*
    370457 * Refer to README.W32 for info on the following settings
    371458 */
     459
    372460
    373461/*
     
    376464 * shell support.
    377465 */
    378 #undef BATCH_MODE_ONLY_SHELL
    379 #define BATCH_MODE_ONLY_SHELL 1
     466/*#define BATCH_MODE_ONLY_SHELL 1 */
    380467
    381468/*
     
    383470 * Do NOT define BATCH_MODE_ONLY_SHELL if you define HAVE_CYGWIN_SHELL
    384471 */
    385 #undef HAVE_CYGWIN_SHELL
     472/*#define HAVE_CYGWIN_SHELL 1 */
    386473
    387474/*
     
    389476 * BATCH_MODE_ONLY_SHELL if you define HAVE_MKS_SHELL
    390477 */
    391 #undef HAVE_MKS_SHELL
     478/*#define HAVE_MKS_SHELL 1 */
    392479
    393480/*
     
    401488#undef BATCH_MODE_ONLY_SHELL
    402489#endif
    403 
    404 /* Define if you prefer Case Insensitive behavior */
    405 #undef HAVE_CASE_INSENSITIVE_FS
  • vendor/gnumake/current/config.h.in

    r152 r501  
    3939#undef HAVE_ANSI_COMPILER
    4040
     41/* Define to 1 if you have the `atexit' function. */
     42#undef HAVE_ATEXIT
     43
    4144/* Define to 1 if you have the `bsd_signal' function. */
    4245#undef HAVE_BSD_SIGNAL
     46
     47/* Use case insensitive file names */
     48#undef HAVE_CASE_INSENSITIVE_FS
    4349
    4450/* Define if you have the clock_gettime function. */
     
    5359#undef HAVE_DECL_SYS_SIGLIST
    5460
     61/* Define to 1 if you have the declaration of `_sys_siglist', and to 0 if you
     62   don't. */
     63#undef HAVE_DECL__SYS_SIGLIST
     64
     65/* Define to 1 if you have the declaration of `__sys_siglist', and to 0 if you
     66   don't. */
     67#undef HAVE_DECL___SYS_SIGLIST
     68
    5569/* Define to 1 if you have the <dirent.h> header file, and it defines `DIR'.
    5670   */
     
    6074#undef HAVE_DOPRNT
    6175
    62 /* Define this if your system requires backslashes or drive specs in
    63    pathnames. */
     76/* Use platform specific coding */
    6477#undef HAVE_DOS_PATHS
    6578
     
    91104#undef HAVE_GETLOADAVG
    92105
     106/* Define to 1 if you have the `getrlimit' function. */
     107#undef HAVE_GETRLIMIT
     108
    93109/* Define if the GNU gettext() function is already present or preinstalled. */
    94110#undef HAVE_GETTEXT
     
    115131#undef HAVE_LOCALE_H
    116132
     133/* Define to 1 if you have the `lstat' function. */
     134#undef HAVE_LSTAT
     135
    117136/* Define to 1 if you have the <mach/mach.h> header file. */
    118137#undef HAVE_MACH_MACH_H
     
    145164#undef HAVE_PSTAT_GETDYNAMIC
    146165
     166/* Define to 1 if you have the `readlink' function. */
     167#undef HAVE_READLINK
     168
     169/* Define to 1 if you have the `realpath' function. */
     170#undef HAVE_REALPATH
     171
    147172/* Define if <signal.h> defines the SA_RESTART constant. */
    148173#undef HAVE_SA_RESTART
     
    166191#undef HAVE_SETREUID
    167192
     193/* Define to 1 if you have the `setrlimit' function. */
     194#undef HAVE_SETRLIMIT
     195
    168196/* Define to 1 if you have the `setvbuf' function. */
    169197#undef HAVE_SETVBUF
     
    226254#undef HAVE_SYS_PARAM_H
    227255
     256/* Define to 1 if you have the <sys/resource.h> header file. */
     257#undef HAVE_SYS_RESOURCE_H
     258
    228259/* Define to 1 if you have the <sys/stat.h> header file. */
    229260#undef HAVE_SYS_STAT_H
     
    276307/* Define this to enable job server support in GNU make. */
    277308#undef MAKE_JOBSERVER
     309
     310/* Define this to enable symbolic link timestamp checking. */
     311#undef MAKE_SYMLINKS
    278312
    279313/* Define to 1 if your `struct nlist' has an `n_un' member. Obsolete, depend
     
    355389#undef VERSION
    356390
     391/* Use platform specific coding */
     392#undef WINDOWS32
     393
    357394/* Define if using the dmalloc debugging malloc package */
    358395#undef WITH_DMALLOC
  • vendor/gnumake/current/config/ChangeLog

    r53 r501  
     12006-03-09  Paul Smith  <[email protected]>
     2
     3        * dospaths.m4: Add MSYS to the list of targets allowing DOS-style
     4        pathnames.  Reported by David Ergo <[email protected]>.
     5
     62005-07-01  Paul D. Smith  <[email protected]>
     7
     8        * Makefile.am (EXTRA_DIST): Added more M4 files to EXTRA_DIST, so
     9        users can re-run aclocal.
     10
    1112003-04-30  Paul D. Smith  <[email protected]>
    212
     
    1828        * Makefile.am: New file.
    1929
     30
     31
     32Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
     33This file is part of GNU Make.
     34
     35GNU Make is free software; you can redistribute it and/or modify it under the
     36terms of the GNU General Public License as published by the Free Software
     37Foundation; either version 2, or (at your option) any later version.
     38
     39GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     40WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     41A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     42
     43You should have received a copy of the GNU General Public License along with
     44GNU Make; see the file COPYING.  If not, write to the Free Software
     45Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  • vendor/gnumake/current/config/Makefile.am

    r53 r501  
    11# -*-Makefile-*-, or close enough
     2# Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
     3# This file is part of GNU Make.
     4#
     5# GNU Make is free software; you can redistribute it and/or modify it under the
     6# terms of the GNU General Public License as published by the Free Software
     7# Foundation; either version 2, or (at your option) any later version.
     8#
     9# GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     10# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     11# A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     12#
     13# You should have received a copy of the GNU General Public License along with
     14# GNU Make; see the file COPYING.  If not, write to the Free Software
     15# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
    216
    317EXTRA_DIST =    codeset.m4 gettext.m4 glibc21.m4 iconv.m4 isc-posix.m4 nls.m4 \
    418                intdiv0.m4 inttypes-pri.m4 inttypes.m4 inttypes_h.m4 \
    519                isc-posix.m4 lcmessage.m4 lib-ld.m4 lib-link.m4 lib-prefix.m4 \
    6                 progtest.m4 stdint_h.m4 uintmax_t.m4 ulonglong.m4 \
    7                 dospaths.m4 po.m4
     20                progtest.m4 stdint_h.m4 uintmax_t.m4 ulonglong.m4 longlong.m4 \
     21                dospaths.m4 po.m4 signed.m4 longdouble.m4 wchar_t.m4 \
     22                wint_t.m4 intmax.m4 printf-posix.m4 xsize.m4 size_max.m4
  • vendor/gnumake/current/config/Makefile.in

    r152 r501  
    1 # Makefile.in generated by automake 1.8.2 from Makefile.am.
     1# Makefile.in generated by automake 1.9.6 from Makefile.am.
    22# @configure_input@
    33
    44# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
    5 # 2003, 2004  Free Software Foundation, Inc.
     5# 2003, 2004, 2005  Free Software Foundation, Inc.
    66# This Makefile.in is free software; the Free Software Foundation
    77# gives unlimited permission to copy and/or distribute it,
     
    1616
    1717# -*-Makefile-*-, or close enough
     18# Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
     19# This file is part of GNU Make.
     20#
     21# GNU Make is free software; you can redistribute it and/or modify it under the
     22# terms of the GNU General Public License as published by the Free Software
     23# Foundation; either version 2, or (at your option) any later version.
     24#
     25# GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     26# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     27# A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     28#
     29# You should have received a copy of the GNU General Public License along with
     30# GNU Make; see the file COPYING.  If not, write to the Free Software
     31# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
    1832srcdir = @srcdir@
    1933top_srcdir = @top_srcdir@
     
    3650PRE_UNINSTALL = :
    3751POST_UNINSTALL = :
     52build_triplet = @build@
    3853host_triplet = @host@
    3954subdir = config
    4055DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ChangeLog \
    4156        compile config.guess config.rpath config.sub depcomp \
    42         install-sh missing mkinstalldirs texinfo.tex
     57        install-sh mdate-sh missing mkinstalldirs texinfo.tex
    4358ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
    4459am__aclocal_m4_deps = $(top_srcdir)/config/dospaths.m4 \
     
    126141USE_NLS = @USE_NLS@
    127142VERSION = @VERSION@
     143WINDOWSENV_FALSE = @WINDOWSENV_FALSE@
     144WINDOWSENV_TRUE = @WINDOWSENV_TRUE@
    128145XGETTEXT = @XGETTEXT@
    129146ac_ct_CC = @ac_ct_CC@
     
    135152am__leading_dot = @am__leading_dot@
    136153am__quote = @am__quote@
     154am__tar = @am__tar@
     155am__untar = @am__untar@
    137156bindir = @bindir@
    138157build = @build@
     
    166185                intdiv0.m4 inttypes-pri.m4 inttypes.m4 inttypes_h.m4 \
    167186                isc-posix.m4 lcmessage.m4 lib-ld.m4 lib-link.m4 lib-prefix.m4 \
    168                 progtest.m4 stdint_h.m4 uintmax_t.m4 ulonglong.m4 \
    169                 dospaths.m4 po.m4
     187                progtest.m4 stdint_h.m4 uintmax_t.m4 ulonglong.m4 longlong.m4 \
     188                dospaths.m4 po.m4 signed.m4 longdouble.m4 wchar_t.m4 \
     189                wint_t.m4 intmax.m4 printf-posix.m4 xsize.m4 size_max.m4
    170190
    171191all: all-am
     
    259279
    260280distclean-generic:
    261         -rm -f $(CONFIG_CLEAN_FILES)
     281        -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
    262282
    263283maintainer-clean-generic:
  • vendor/gnumake/current/config/compile

    • Property svn:executable set to *
    r152 r501  
    22# Wrapper for compilers which do not understand `-c -o'.
    33
    4 scriptversion=2003-11-09.00
     4scriptversion=2005-05-14.22
    55
    6 # Copyright (C) 1999, 2000, 2003 Free Software Foundation, Inc.
     6# Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
    77# Written by Tom Tromey <[email protected]>.
    88#
     
    1919# You should have received a copy of the GNU General Public License
    2020# along with this program; if not, write to the Free Software
    21 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
     21# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
    2222
    2323# As a special exception to the GNU General Public License, if you
     
    4848Report bugs to <[email protected]>.
    4949EOF
    50     exit 0
     50    exit $?
    5151    ;;
    5252  -v | --v*)
    5353    echo "compile $scriptversion"
    54     exit 0
     54    exit $?
    5555    ;;
    5656esac
    5757
    58 
    59 prog=$1
    60 shift
    61 
    6258ofile=
    6359cfile=
    64 args=
    65 while test $# -gt 0; do
    66   case "$1" in
    67     -o)
    68       # configure might choose to run compile as `compile cc -o foo foo.c'.
    69       # So we do something ugly here.
    70       ofile=$2
    71       shift
    72       case "$ofile" in
    73         *.o | *.obj)
    74           ;;
    75         *)
    76           args="$args -o $ofile"
    77           ofile=
    78           ;;
    79       esac
    80        ;;
    81     *.c)
    82       cfile=$1
    83       args="$args $1"
    84       ;;
    85     *)
    86       args="$args $1"
    87       ;;
    88   esac
     60eat=
     61
     62for arg
     63do
     64  if test -n "$eat"; then
     65    eat=
     66  else
     67    case $1 in
     68      -o)
     69        # configure might choose to run compile as `compile cc -o foo foo.c'.
     70        # So we strip `-o arg' only if arg is an object.
     71        eat=1
     72        case $2 in
     73          *.o | *.obj)
     74            ofile=$2
     75            ;;
     76          *)
     77            set x "$@" -o "$2"
     78            shift
     79            ;;
     80        esac
     81        ;;
     82      *.c)
     83        cfile=$1
     84        set x "$@" "$1"
     85        shift
     86        ;;
     87      *)
     88        set x "$@" "$1"
     89        shift
     90        ;;
     91    esac
     92  fi
    8993  shift
    9094done
     
    96100  # `.c' file was seen then we are probably linking.  That is also
    97101  # ok.
    98   exec "$prog" $args
     102  exec "$@"
    99103fi
    100104
    101105# Name of file we expect compiler to create.
    102 cofile=`echo $cfile | sed -e 's|^.*/||' -e 's/\.c$/.o/'`
     106cofile=`echo "$cfile" | sed -e 's|^.*/||' -e 's/\.c$/.o/'`
    103107
    104108# Create the lock directory.
     
    106110# that we are using for the .o file.  Also, base the name on the expected
    107111# object file name, since that is what matters with a parallel build.
    108 lockdir=`echo $cofile | sed -e 's|[/.-]|_|g'`.d
     112lockdir=`echo "$cofile" | sed -e 's|[/.-]|_|g'`.d
    109113while true; do
    110   if mkdir $lockdir > /dev/null 2>&1; then
     114  if mkdir "$lockdir" >/dev/null 2>&1; then
    111115    break
    112116  fi
     
    114118done
    115119# FIXME: race condition here if user kills between mkdir and trap.
    116 trap "rmdir $lockdir; exit 1" 1 2 15
     120trap "rmdir '$lockdir'; exit 1" 1 2 15
    117121
    118122# Run the compile.
    119 "$prog" $args
    120 status=$?
     123"$@"
     124ret=$?
    121125
    122126if test -f "$cofile"; then
    123127  mv "$cofile" "$ofile"
     128elif test -f "${cofile}bj"; then
     129  mv "${cofile}bj" "$ofile"
    124130fi
    125131
    126 rmdir $lockdir
    127 exit $status
     132rmdir "$lockdir"
     133exit $ret
    128134
    129135# Local Variables:
  • vendor/gnumake/current/config/config.guess

    r152 r501  
    22# Attempt to guess a canonical system name.
    33#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
    4 #   2000, 2001, 2002, 2003 Free Software Foundation, Inc.
    5 
    6 timestamp='2004-03-03'
     4#   2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation,
     5#   Inc.
     6
     7timestamp='2006-03-13'
    78
    89# This file is free software; you can redistribute it and/or modify it
     
    1819# You should have received a copy of the GNU General Public License
    1920# along with this program; if not, write to the Free Software
    20 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
     21# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
     22# 02110-1301, USA.
    2123#
    2224# As a special exception to the GNU General Public License, if you
     
    2426# configuration script generated by Autoconf, you may include it under
    2527# the same distribution terms that you use for the rest of that program.
     28
    2629
    2730# Originally written by Per Bothner <[email protected]>.
     
    5457
    5558Originally written by Per Bothner.
    56 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
     59Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
    5760Free Software Foundation, Inc.
    5861
     
    6770  case $1 in
    6871    --time-stamp | --time* | -t )
    69        echo "$timestamp" ; exit 0 ;;
     72       echo "$timestamp" ; exit ;;
    7073    --version | -v )
    71        echo "$version" ; exit 0 ;;
     74       echo "$version" ; exit ;;
    7275    --help | --h* | -h )
    73        echo "$usage"; exit 0 ;;
     76       echo "$usage"; exit ;;
    7477    -- )     # Stop option processing
    7578       shift; break ;;
     
    105108trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
    106109: ${TMPDIR=/tmp} ;
    107  { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
     110 { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
    108111 { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
    109112 { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
     
    124127 ,,*)   CC_FOR_BUILD=$CC ;;
    125128 ,*,*)  CC_FOR_BUILD=$HOST_CC ;;
    126 esac ;'
     129esac ; set_cc_for_build= ;'
    127130
    128131# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
     
    197200        # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
    198201        echo "${machine}-${os}${release}"
    199         exit 0 ;;
    200     amd64:OpenBSD:*:*)
    201         echo x86_64-unknown-openbsd${UNAME_RELEASE}
    202         exit 0 ;;
    203     amiga:OpenBSD:*:*)
    204         echo m68k-unknown-openbsd${UNAME_RELEASE}
    205         exit 0 ;;
    206     arc:OpenBSD:*:*)
    207         echo mipsel-unknown-openbsd${UNAME_RELEASE}
    208         exit 0 ;;
    209     cats:OpenBSD:*:*)
    210         echo arm-unknown-openbsd${UNAME_RELEASE}
    211         exit 0 ;;
    212     hp300:OpenBSD:*:*)
    213         echo m68k-unknown-openbsd${UNAME_RELEASE}
    214         exit 0 ;;
    215     mac68k:OpenBSD:*:*)
    216         echo m68k-unknown-openbsd${UNAME_RELEASE}
    217         exit 0 ;;
    218     macppc:OpenBSD:*:*)
    219         echo powerpc-unknown-openbsd${UNAME_RELEASE}
    220         exit 0 ;;
    221     mvme68k:OpenBSD:*:*)
    222         echo m68k-unknown-openbsd${UNAME_RELEASE}
    223         exit 0 ;;
    224     mvme88k:OpenBSD:*:*)
    225         echo m88k-unknown-openbsd${UNAME_RELEASE}
    226         exit 0 ;;
    227     mvmeppc:OpenBSD:*:*)
    228         echo powerpc-unknown-openbsd${UNAME_RELEASE}
    229         exit 0 ;;
    230     pegasos:OpenBSD:*:*)
    231         echo powerpc-unknown-openbsd${UNAME_RELEASE}
    232         exit 0 ;;
    233     pmax:OpenBSD:*:*)
    234         echo mipsel-unknown-openbsd${UNAME_RELEASE}
    235         exit 0 ;;
    236     sgi:OpenBSD:*:*)
    237         echo mipseb-unknown-openbsd${UNAME_RELEASE}
    238         exit 0 ;;
    239     sun3:OpenBSD:*:*)
    240         echo m68k-unknown-openbsd${UNAME_RELEASE}
    241         exit 0 ;;
    242     wgrisc:OpenBSD:*:*)
    243         echo mipsel-unknown-openbsd${UNAME_RELEASE}
    244         exit 0 ;;
     202        exit ;;
    245203    *:OpenBSD:*:*)
    246         echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE}
    247         exit 0 ;;
     204        UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
     205        echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
     206        exit ;;
    248207    *:ekkoBSD:*:*)
    249208        echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
    250         exit 0 ;;
     209        exit ;;
     210    *:SolidBSD:*:*)
     211        echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE}
     212        exit ;;
    251213    macppc:MirBSD:*:*)
    252214        echo powerppc-unknown-mirbsd${UNAME_RELEASE}
    253         exit 0 ;;
     215        exit ;;
    254216    *:MirBSD:*:*)
    255217        echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
    256         exit 0 ;;
     218        exit ;;
    257219    alpha:OSF1:*:*)
    258220        case $UNAME_RELEASE in
     
    307269        # 1.2 uses "1.2" for uname -r.
    308270        echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
    309         exit 0 ;;
    310     Alpha*:OpenVMS:*:*)
    311         echo alpha-hp-vms
    312         exit 0 ;;
     271        exit ;;
    313272    Alpha\ *:Windows_NT*:*)
    314273        # How do we know it's Interix rather than the generic POSIX subsystem?
     
    316275        # of the specific Alpha model?
    317276        echo alpha-pc-interix
    318         exit 0 ;;
     277        exit ;;
    319278    21064:Windows_NT:50:3)
    320279        echo alpha-dec-winnt3.5
    321         exit 0 ;;
     280        exit ;;
    322281    Amiga*:UNIX_System_V:4.0:*)
    323282        echo m68k-unknown-sysv4
    324         exit 0;;
     283        exit ;;
    325284    *:[Aa]miga[Oo][Ss]:*:*)
    326285        echo ${UNAME_MACHINE}-unknown-amigaos
    327         exit 0 ;;
     286        exit ;;
    328287    *:[Mm]orph[Oo][Ss]:*:*)
    329288        echo ${UNAME_MACHINE}-unknown-morphos
    330         exit 0 ;;
     289        exit ;;
    331290    *:OS/390:*:*)
    332291        echo i370-ibm-openedition
    333         exit 0 ;;
     292        exit ;;
     293    *:z/VM:*:*)
     294        echo s390-ibm-zvmoe
     295        exit ;;
    334296    *:OS400:*:*)
    335297        echo powerpc-ibm-os400
    336         exit 0 ;;
     298        exit ;;
    337299    arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
    338300        echo arm-acorn-riscix${UNAME_RELEASE}
    339         exit 0;;
     301        exit ;;
     302    arm:riscos:*:*|arm:RISCOS:*:*)
     303        echo arm-unknown-riscos
     304        exit ;;
    340305    SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
    341306        echo hppa1.1-hitachi-hiuxmpp
    342         exit 0;;
     307        exit ;;
    343308    Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
    344309        # [email protected] (Earle F. Ake) contributed MIS and NILE.
     
    348313                echo pyramid-pyramid-bsd
    349314        fi
    350         exit 0 ;;
     315        exit ;;
    351316    NILE*:*:*:dcosx)
    352317        echo pyramid-pyramid-svr4
    353         exit 0 ;;
     318        exit ;;
    354319    DRS?6000:unix:4.0:6*)
    355320        echo sparc-icl-nx6
    356         exit 0 ;;
    357     DRS?6000:UNIX_SV:4.2*:7*)
     321        exit ;;
     322    DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
    358323        case `/usr/bin/uname -p` in
    359             sparc) echo sparc-icl-nx7 && exit 0 ;;
     324            sparc) echo sparc-icl-nx7; exit ;;
    360325        esac ;;
    361326    sun4H:SunOS:5.*:*)
    362327        echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
    363         exit 0 ;;
     328        exit ;;
    364329    sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
    365330        echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
    366         exit 0 ;;
     331        exit ;;
    367332    i86pc:SunOS:5.*:*)
    368333        echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
    369         exit 0 ;;
     334        exit ;;
    370335    sun4*:SunOS:6*:*)
    371336        # According to config.sub, this is the proper way to canonicalize
     
    373338        # it's likely to be more like Solaris than SunOS4.
    374339        echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
    375         exit 0 ;;
     340        exit ;;
    376341    sun4*:SunOS:*:*)
    377342        case "`/usr/bin/arch -k`" in
     
    382347        # Japanese Language versions have a version number like `4.1.3-JL'.
    383348        echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
    384         exit 0 ;;
     349        exit ;;
    385350    sun3*:SunOS:*:*)
    386351        echo m68k-sun-sunos${UNAME_RELEASE}
    387         exit 0 ;;
     352        exit ;;
    388353    sun*:*:4.2BSD:*)
    389354        UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
     
    397362                ;;
    398363        esac
    399         exit 0 ;;
     364        exit ;;
    400365    aushp:SunOS:*:*)
    401366        echo sparc-auspex-sunos${UNAME_RELEASE}
    402         exit 0 ;;
     367        exit ;;
    403368    # The situation for MiNT is a little confusing.  The machine name
    404369    # can be virtually everything (everything which is not
     
    411376    atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
    412377        echo m68k-atari-mint${UNAME_RELEASE}
    413         exit 0 ;;
     378        exit ;;
    414379    atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
    415380        echo m68k-atari-mint${UNAME_RELEASE}
    416         exit 0 ;;
     381        exit ;;
    417382    *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
    418383        echo m68k-atari-mint${UNAME_RELEASE}
    419         exit 0 ;;
     384        exit ;;
    420385    milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
    421386        echo m68k-milan-mint${UNAME_RELEASE}
    422         exit 0 ;;
     387        exit ;;
    423388    hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
    424389        echo m68k-hades-mint${UNAME_RELEASE}
    425         exit 0 ;;
     390        exit ;;
    426391    *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
    427392        echo m68k-unknown-mint${UNAME_RELEASE}
    428         exit 0 ;;
     393        exit ;;
    429394    m68k:machten:*:*)
    430395        echo m68k-apple-machten${UNAME_RELEASE}
    431         exit 0 ;;
     396        exit ;;
    432397    powerpc:machten:*:*)
    433398        echo powerpc-apple-machten${UNAME_RELEASE}
    434         exit 0 ;;
     399        exit ;;
    435400    RISC*:Mach:*:*)
    436401        echo mips-dec-mach_bsd4.3
    437         exit 0 ;;
     402        exit ;;
    438403    RISC*:ULTRIX:*:*)
    439404        echo mips-dec-ultrix${UNAME_RELEASE}
    440         exit 0 ;;
     405        exit ;;
    441406    VAX*:ULTRIX*:*:*)
    442407        echo vax-dec-ultrix${UNAME_RELEASE}
    443         exit 0 ;;
     408        exit ;;
    444409    2020:CLIX:*:* | 2430:CLIX:*:*)
    445410        echo clipper-intergraph-clix${UNAME_RELEASE}
    446         exit 0 ;;
     411        exit ;;
    447412    mips:*:*:UMIPS | mips:*:*:RISCos)
    448413        eval $set_cc_for_build
     
    468433        }
    469434EOF
    470         $CC_FOR_BUILD -o $dummy $dummy.c \
    471           && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
    472           && exit 0
     435        $CC_FOR_BUILD -o $dummy $dummy.c &&
     436          dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&
     437          SYSTEM_NAME=`$dummy $dummyarg` &&
     438            { echo "$SYSTEM_NAME"; exit; }
    473439        echo mips-mips-riscos${UNAME_RELEASE}
    474         exit 0 ;;
     440        exit ;;
    475441    Motorola:PowerMAX_OS:*:*)
    476442        echo powerpc-motorola-powermax
    477         exit 0 ;;
     443        exit ;;
    478444    Motorola:*:4.3:PL8-*)
    479445        echo powerpc-harris-powermax
    480         exit 0 ;;
     446        exit ;;
    481447    Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
    482448        echo powerpc-harris-powermax
    483         exit 0 ;;
     449        exit ;;
    484450    Night_Hawk:Power_UNIX:*:*)
    485451        echo powerpc-harris-powerunix
    486         exit 0 ;;
     452        exit ;;
    487453    m88k:CX/UX:7*:*)
    488454        echo m88k-harris-cxux7
    489         exit 0 ;;
     455        exit ;;
    490456    m88k:*:4*:R4*)
    491457        echo m88k-motorola-sysv4
    492         exit 0 ;;
     458        exit ;;
    493459    m88k:*:3*:R3*)
    494460        echo m88k-motorola-sysv3
    495         exit 0 ;;
     461        exit ;;
    496462    AViiON:dgux:*:*)
    497463        # DG/UX returns AViiON for all architectures
     
    509475            echo i586-dg-dgux${UNAME_RELEASE}
    510476        fi
    511         exit 0 ;;
     477        exit ;;
    512478    M88*:DolphinOS:*:*) # DolphinOS (SVR3)
    513479        echo m88k-dolphin-sysv3
    514         exit 0 ;;
     480        exit ;;
    515481    M88*:*:R3*:*)
    516482        # Delta 88k system running SVR3
    517483        echo m88k-motorola-sysv3
    518         exit 0 ;;
     484        exit ;;
    519485    XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
    520486        echo m88k-tektronix-sysv3
    521         exit 0 ;;
     487        exit ;;
    522488    Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
    523489        echo m68k-tektronix-bsd
    524         exit 0 ;;
     490        exit ;;
    525491    *:IRIX*:*:*)
    526492        echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
    527         exit 0 ;;
     493        exit ;;
    528494    ????????:AIX?:[12].1:2)   # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
    529         echo romp-ibm-aix      # uname -m gives an 8 hex-code CPU id
    530         exit 0 ;;              # Note that: echo "'`uname -s`'" gives 'AIX '
     495        echo romp-ibm-aix     # uname -m gives an 8 hex-code CPU id
     496        exit ;;               # Note that: echo "'`uname -s`'" gives 'AIX '
    531497    i*86:AIX:*:*)
    532498        echo i386-ibm-aix
    533         exit 0 ;;
     499        exit ;;
    534500    ia64:AIX:*:*)
    535501        if [ -x /usr/bin/oslevel ] ; then
     
    539505        fi
    540506        echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
    541         exit 0 ;;
     507        exit ;;
    542508    *:AIX:2:3)
    543509        if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
     
    554520                        }
    555521EOF
    556                 $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0
    557                 echo rs6000-ibm-aix3.2.5
     522                if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
     523                then
     524                        echo "$SYSTEM_NAME"
     525                else
     526                        echo rs6000-ibm-aix3.2.5
     527                fi
    558528        elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
    559529                echo rs6000-ibm-aix3.2.4
     
    561531                echo rs6000-ibm-aix3.2
    562532        fi
    563         exit 0 ;;
     533        exit ;;
    564534    *:AIX:*:[45])
    565535        IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
     
    575545        fi
    576546        echo ${IBM_ARCH}-ibm-aix${IBM_REV}
    577         exit 0 ;;
     547        exit ;;
    578548    *:AIX:*:*)
    579549        echo rs6000-ibm-aix
    580         exit 0 ;;
     550        exit ;;
    581551    ibmrt:4.4BSD:*|romp-ibm:BSD:*)
    582552        echo romp-ibm-bsd4.4
    583         exit 0 ;;
     553        exit ;;
    584554    ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC BSD and
    585555        echo romp-ibm-bsd${UNAME_RELEASE}   # 4.3 with uname added to
    586         exit 0 ;;                           # report: romp-ibm BSD 4.3
     556        exit ;;                             # report: romp-ibm BSD 4.3
    587557    *:BOSX:*:*)
    588558        echo rs6000-bull-bosx
    589         exit 0 ;;
     559        exit ;;
    590560    DPX/2?00:B.O.S.:*:*)
    591561        echo m68k-bull-sysv3
    592         exit 0 ;;
     562        exit ;;
    593563    9000/[34]??:4.3bsd:1.*:*)
    594564        echo m68k-hp-bsd
    595         exit 0 ;;
     565        exit ;;
    596566    hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
    597567        echo m68k-hp-bsd4.4
    598         exit 0 ;;
     568        exit ;;
    599569    9000/[34678]??:HP-UX:*:*)
    600570        HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
     
    658628        if [ ${HP_ARCH} = "hppa2.0w" ]
    659629        then
    660             # avoid double evaluation of $set_cc_for_build
    661             test -n "$CC_FOR_BUILD" || eval $set_cc_for_build
    662             if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E -) | grep __LP64__ >/dev/null
     630            eval $set_cc_for_build
     631
     632            # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
     633            # 32-bit code.  hppa64-hp-hpux* has the same kernel and a compiler
     634            # generating 64-bit code.  GNU and HP use different nomenclature:
     635            #
     636            # $ CC_FOR_BUILD=cc ./config.guess
     637            # => hppa2.0w-hp-hpux11.23
     638            # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
     639            # => hppa64-hp-hpux11.23
     640
     641            if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
     642                grep __LP64__ >/dev/null
    663643            then
    664644                HP_ARCH="hppa2.0w"
     
    668648        fi
    669649        echo ${HP_ARCH}-hp-hpux${HPUX_REV}
    670         exit 0 ;;
     650        exit ;;
    671651    ia64:HP-UX:*:*)
    672652        HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
    673653        echo ia64-hp-hpux${HPUX_REV}
    674         exit 0 ;;
     654        exit ;;
    675655    3050*:HI-UX:*:*)
    676656        eval $set_cc_for_build
     
    700680        }
    701681EOF
    702         $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0
     682        $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
     683                { echo "$SYSTEM_NAME"; exit; }
    703684        echo unknown-hitachi-hiuxwe2
    704         exit 0 ;;
     685        exit ;;
    705686    9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
    706687        echo hppa1.1-hp-bsd
    707         exit 0 ;;
     688        exit ;;
    708689    9000/8??:4.3bsd:*:*)
    709690        echo hppa1.0-hp-bsd
    710         exit 0 ;;
     691        exit ;;
    711692    *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
    712693        echo hppa1.0-hp-mpeix
    713         exit 0 ;;
     694        exit ;;
    714695    hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
    715696        echo hppa1.1-hp-osf
    716         exit 0 ;;
     697        exit ;;
    717698    hp8??:OSF1:*:*)
    718699        echo hppa1.0-hp-osf
    719         exit 0 ;;
     700        exit ;;
    720701    i*86:OSF1:*:*)
    721702        if [ -x /usr/sbin/sysversion ] ; then
     
    724705            echo ${UNAME_MACHINE}-unknown-osf1
    725706        fi
    726         exit 0 ;;
     707        exit ;;
    727708    parisc*:Lites*:*:*)
    728709        echo hppa1.1-hp-lites
    729         exit 0 ;;
     710        exit ;;
    730711    C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
    731712        echo c1-convex-bsd
    732         exit 0 ;;
     713        exit ;;
    733714    C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
    734715        if getsysinfo -f scalar_acc
     
    736717        else echo c2-convex-bsd
    737718        fi
    738         exit 0 ;;
     719        exit ;;
    739720    C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
    740721        echo c34-convex-bsd
    741         exit 0 ;;
     722        exit ;;
    742723    C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
    743724        echo c38-convex-bsd
    744         exit 0 ;;
     725        exit ;;
    745726    C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
    746727        echo c4-convex-bsd
    747         exit 0 ;;
     728        exit ;;
    748729    CRAY*Y-MP:*:*:*)
    749730        echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
    750         exit 0 ;;
     731        exit ;;
    751732    CRAY*[A-Z]90:*:*:*)
    752733        echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
     
    754735              -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
    755736              -e 's/\.[^.]*$/.X/'
    756         exit 0 ;;
     737        exit ;;
    757738    CRAY*TS:*:*:*)
    758739        echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
    759         exit 0 ;;
     740        exit ;;
    760741    CRAY*T3E:*:*:*)
    761742        echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
    762         exit 0 ;;
     743        exit ;;
    763744    CRAY*SV1:*:*:*)
    764745        echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
    765         exit 0 ;;
     746        exit ;;
    766747    *:UNICOS/mp:*:*)
    767         echo nv1-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
    768         exit 0 ;;
     748        echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
     749        exit ;;
    769750    F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
    770751        FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
     
    772753        FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
    773754        echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
    774         exit 0 ;;
     755        exit ;;
    775756    5000:UNIX_System_V:4.*:*)
    776757        FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
    777758        FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
    778759        echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
    779         exit 0 ;;
     760        exit ;;
    780761    i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
    781762        echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
    782         exit 0 ;;
     763        exit ;;
    783764    sparc*:BSD/OS:*:*)
    784765        echo sparc-unknown-bsdi${UNAME_RELEASE}
    785         exit 0 ;;
     766        exit ;;
    786767    *:BSD/OS:*:*)
    787768        echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
    788         exit 0 ;;
     769        exit ;;
    789770    *:FreeBSD:*:*)
    790         # Determine whether the default compiler uses glibc.
    791         eval $set_cc_for_build
    792         sed 's/^        //' << EOF >$dummy.c
    793         #include <features.h>
    794         #if __GLIBC__ >= 2
    795         LIBC=gnu
    796         #else
    797         LIBC=
    798         #endif
    799 EOF
    800         eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
    801         # GNU/KFreeBSD systems have a "k" prefix to indicate we are using
    802         # FreeBSD's kernel, but not the complete OS.
    803         case ${LIBC} in gnu) kernel_only='k' ;; esac
    804         echo ${UNAME_MACHINE}-unknown-${kernel_only}freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC}
    805         exit 0 ;;
     771        case ${UNAME_MACHINE} in
     772            pc98)
     773                echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
     774            *)
     775                echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
     776        esac
     777        exit ;;
    806778    i*:CYGWIN*:*)
    807779        echo ${UNAME_MACHINE}-pc-cygwin
    808         exit 0 ;;
     780        exit ;;
    809781    i*:MINGW*:*)
    810782        echo ${UNAME_MACHINE}-pc-mingw32
    811         exit 0 ;;
     783        exit ;;
     784    i*:windows32*:*)
     785        # uname -m includes "-pc" on this system.
     786        echo ${UNAME_MACHINE}-mingw32
     787        exit ;;
    812788    i*:PW*:*)
    813789        echo ${UNAME_MACHINE}-pc-pw32
    814         exit 0 ;;
    815     x86:Interix*:[34]*)
    816         echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//'
    817         exit 0 ;;
     790        exit ;;
     791    x86:Interix*:[345]*)
     792        echo i586-pc-interix${UNAME_RELEASE}
     793        exit ;;
     794    EM64T:Interix*:[345]*)
     795        echo x86_64-unknown-interix${UNAME_RELEASE}
     796        exit ;;
    818797    [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
    819798        echo i${UNAME_MACHINE}-pc-mks
    820         exit 0 ;;
     799        exit ;;
    821800    i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
    822801        # How do we know it's Interix rather than the generic POSIX subsystem?
     
    824803        # UNAME_MACHINE based on the output of uname instead of i386?
    825804        echo i586-pc-interix
    826         exit 0 ;;
     805        exit ;;
    827806    i*:UWIN*:*)
    828807        echo ${UNAME_MACHINE}-pc-uwin
    829         exit 0 ;;
     808        exit ;;
     809    amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
     810        echo x86_64-unknown-cygwin
     811        exit ;;
    830812    p*:CYGWIN*:*)
    831813        echo powerpcle-unknown-cygwin
    832         exit 0 ;;
     814        exit ;;
    833815    prep*:SunOS:5.*:*)
    834816        echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
    835         exit 0 ;;
     817        exit ;;
    836818    *:GNU:*:*)
    837819        # the GNU system
    838820        echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
    839         exit 0 ;;
     821        exit ;;
    840822    *:GNU/*:*:*)
    841823        # other systems with GNU libc and userland
    842824        echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
    843         exit 0 ;;
     825        exit ;;
    844826    i*86:Minix:*:*)
    845827        echo ${UNAME_MACHINE}-pc-minix
    846         exit 0 ;;
     828        exit ;;
    847829    arm*:Linux:*:*)
    848830        echo ${UNAME_MACHINE}-unknown-linux-gnu
    849         exit 0 ;;
     831        exit ;;
    850832    cris:Linux:*:*)
    851833        echo cris-axis-linux-gnu
    852         exit 0 ;;
     834        exit ;;
     835    crisv32:Linux:*:*)
     836        echo crisv32-axis-linux-gnu
     837        exit ;;
     838    frv:Linux:*:*)
     839        echo frv-unknown-linux-gnu
     840        exit ;;
    853841    ia64:Linux:*:*)
    854842        echo ${UNAME_MACHINE}-unknown-linux-gnu
    855         exit 0 ;;
     843        exit ;;
     844    m32r*:Linux:*:*)
     845        echo ${UNAME_MACHINE}-unknown-linux-gnu
     846        exit ;;
    856847    m68*:Linux:*:*)
    857848        echo ${UNAME_MACHINE}-unknown-linux-gnu
    858         exit 0 ;;
     849        exit ;;
    859850    mips:Linux:*:*)
    860851        eval $set_cc_for_build
     
    873864        #endif
    874865EOF
    875         eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
    876         test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
     866        eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
     867            /^CPU/{
     868                s: ::g
     869                p
     870            }'`"
     871        test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
    877872        ;;
    878873    mips64:Linux:*:*)
     
    892887        #endif
    893888EOF
    894         eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
    895         test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
     889        eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
     890            /^CPU/{
     891                s: ::g
     892                p
     893            }'`"
     894        test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
    896895        ;;
     896    or32:Linux:*:*)
     897        echo or32-unknown-linux-gnu
     898        exit ;;
    897899    ppc:Linux:*:*)
    898900        echo powerpc-unknown-linux-gnu
    899         exit 0 ;;
     901        exit ;;
    900902    ppc64:Linux:*:*)
    901903        echo powerpc64-unknown-linux-gnu
    902         exit 0 ;;
     904        exit ;;
    903905    alpha:Linux:*:*)
    904906        case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
     
    914916        if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
    915917        echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
    916         exit 0 ;;
     918        exit ;;
    917919    parisc:Linux:*:* | hppa:Linux:*:*)
    918920        # Look for CPU level
     
    922924          *)    echo hppa-unknown-linux-gnu ;;
    923925        esac
    924         exit 0 ;;
     926        exit ;;
    925927    parisc64:Linux:*:* | hppa64:Linux:*:*)
    926928        echo hppa64-unknown-linux-gnu
    927         exit 0 ;;
     929        exit ;;
    928930    s390:Linux:*:* | s390x:Linux:*:*)
    929931        echo ${UNAME_MACHINE}-ibm-linux
    930         exit 0 ;;
     932        exit ;;
    931933    sh64*:Linux:*:*)
    932934        echo ${UNAME_MACHINE}-unknown-linux-gnu
    933         exit 0 ;;
     935        exit ;;
    934936    sh*:Linux:*:*)
    935937        echo ${UNAME_MACHINE}-unknown-linux-gnu
    936         exit 0 ;;
     938        exit ;;
    937939    sparc:Linux:*:* | sparc64:Linux:*:*)
    938940        echo ${UNAME_MACHINE}-unknown-linux-gnu
    939         exit 0 ;;
     941        exit ;;
     942    vax:Linux:*:*)
     943        echo ${UNAME_MACHINE}-dec-linux-gnu
     944        exit ;;
    940945    x86_64:Linux:*:*)
    941946        echo x86_64-unknown-linux-gnu
    942         exit 0 ;;
     947        exit ;;
    943948    i*86:Linux:*:*)
    944949        # The BFD linker knows what the default object file format is, so
     
    958963          a.out-i386-linux)
    959964                echo "${UNAME_MACHINE}-pc-linux-gnuaout"
    960                 exit 0 ;;
     965                exit ;;
    961966          coff-i386)
    962967                echo "${UNAME_MACHINE}-pc-linux-gnucoff"
    963                 exit 0 ;;
     968                exit ;;
    964969          "")
    965970                # Either a pre-BFD a.out linker (linux-gnuoldld) or
    966971                # one that does not give us useful --help.
    967972                echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
    968                 exit 0 ;;
     973                exit ;;
    969974        esac
    970975        # Determine whether the default compiler is a.out or elf
     
    983988        # endif
    984989        #else
    985         #ifdef __INTEL_COMPILER
     990        #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__sun)
    986991        LIBC=gnu
    987992        #else
     
    993998        #endif
    994999EOF
    995         eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
    996         test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0
    997         test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
     1000        eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
     1001            /^LIBC/{
     1002                s: ::g
     1003                p
     1004            }'`"
     1005        test x"${LIBC}" != x && {
     1006                echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
     1007                exit
     1008        }
     1009        test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; }
    9981010        ;;
    9991011    i*86:DYNIX/ptx:4*:*)
     
    10021014        # sysname and nodename.
    10031015        echo i386-sequent-sysv4
    1004         exit 0 ;;
     1016        exit ;;
    10051017    i*86:UNIX_SV:4.2MP:2.*)
    10061018        # Unixware is an offshoot of SVR4, but it has its own version
     
    10101022        # Use sysv4.2uw... so that sysv4* matches it.
    10111023        echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
    1012         exit 0 ;;
     1024        exit ;;
    10131025    i*86:OS/2:*:*)
    10141026        # If we were able to find `uname', then EMX Unix compatibility
    10151027        # is probably installed.
    10161028        echo ${UNAME_MACHINE}-pc-os2-emx
    1017         exit 0 ;;
     1029        exit ;;
    10181030    i*86:XTS-300:*:STOP)
    10191031        echo ${UNAME_MACHINE}-unknown-stop
    1020         exit 0 ;;
     1032        exit ;;
    10211033    i*86:atheos:*:*)
    10221034        echo ${UNAME_MACHINE}-unknown-atheos
    1023         exit 0 ;;
    1024         i*86:syllable:*:*)
     1035        exit ;;
     1036    i*86:syllable:*:*)
    10251037        echo ${UNAME_MACHINE}-pc-syllable
    1026         exit 0 ;;
     1038        exit ;;
    10271039    i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
    10281040        echo i386-unknown-lynxos${UNAME_RELEASE}
    1029         exit 0 ;;
     1041        exit ;;
    10301042    i*86:*DOS:*:*)
    10311043        echo ${UNAME_MACHINE}-pc-msdosdjgpp
    1032         exit 0 ;;
     1044        exit ;;
    10331045    i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
    10341046        UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
     
    10381050                echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
    10391051        fi
    1040         exit 0 ;;
    1041     i*86:*:5:[78]*)
     1052        exit ;;
     1053    i*86:*:5:[678]*)
     1054        # UnixWare 7.x, OpenUNIX and OpenServer 6.
    10421055        case `/bin/uname -X | grep "^Machine"` in
    10431056            *486*)           UNAME_MACHINE=i486 ;;
     
    10461059        esac
    10471060        echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
    1048         exit 0 ;;
     1061        exit ;;
    10491062    i*86:*:3.2:*)
    10501063        if test -f /usr/options/cb.name; then
     
    10641077                echo ${UNAME_MACHINE}-pc-sysv32
    10651078        fi
    1066         exit 0 ;;
     1079        exit ;;
    10671080    pc:*:*:*)
    10681081        # Left here for compatibility:
     
    10701083        # the processor, so we play safe by assuming i386.
    10711084        echo i386-pc-msdosdjgpp
    1072         exit 0 ;;
     1085        exit ;;
    10731086    Intel:Mach:3*:*)
    10741087        echo i386-pc-mach3
    1075         exit 0 ;;
     1088        exit ;;
    10761089    paragon:*:*:*)
    10771090        echo i860-intel-osf1
    1078         exit 0 ;;
     1091        exit ;;
    10791092    i860:*:4.*:*) # i860-SVR4
    10801093        if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
     
    10831096          echo i860-unknown-sysv${UNAME_RELEASE}  # Unknown i860-SVR4
    10841097        fi
    1085         exit 0 ;;
     1098        exit ;;
    10861099    mini*:CTIX:SYS*5:*)
    10871100        # "miniframe"
    10881101        echo m68010-convergent-sysv
    1089         exit 0 ;;
     1102        exit ;;
    10901103    mc68k:UNIX:SYSTEM5:3.51m)
    10911104        echo m68k-convergent-sysv
    1092         exit 0 ;;
     1105        exit ;;
    10931106    M680?0:D-NIX:5.3:*)
    10941107        echo m68k-diab-dnix
    1095         exit 0 ;;
    1096     M68*:*:R3V[567]*:*)
    1097         test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
    1098     3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0)
     1108        exit ;;
     1109    M68*:*:R3V[5678]*:*)
     1110        test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
     1111    3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
    10991112        OS_REL=''
    11001113        test -r /etc/.relid \
    11011114        && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
    11021115        /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
    1103           && echo i486-ncr-sysv4.3${OS_REL} && exit 0
     1116          && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
    11041117        /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
    1105           && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;;
     1118          && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
    11061119    3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
    11071120        /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
    1108           && echo i486-ncr-sysv4 && exit 0 ;;
     1121          && { echo i486-ncr-sysv4; exit; } ;;
    11091122    m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
    11101123        echo m68k-unknown-lynxos${UNAME_RELEASE}
    1111         exit 0 ;;
     1124        exit ;;
    11121125    mc68030:UNIX_System_V:4.*:*)
    11131126        echo m68k-atari-sysv4
    1114         exit 0 ;;
     1127        exit ;;
    11151128    TSUNAMI:LynxOS:2.*:*)
    11161129        echo sparc-unknown-lynxos${UNAME_RELEASE}
    1117         exit 0 ;;
     1130        exit ;;
    11181131    rs6000:LynxOS:2.*:*)
    11191132        echo rs6000-unknown-lynxos${UNAME_RELEASE}
    1120         exit 0 ;;
     1133        exit ;;
    11211134    PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
    11221135        echo powerpc-unknown-lynxos${UNAME_RELEASE}
    1123         exit 0 ;;
     1136        exit ;;
    11241137    SM[BE]S:UNIX_SV:*:*)
    11251138        echo mips-dde-sysv${UNAME_RELEASE}
    1126         exit 0 ;;
     1139        exit ;;
    11271140    RM*:ReliantUNIX-*:*:*)
    11281141        echo mips-sni-sysv4
    1129         exit 0 ;;
     1142        exit ;;
    11301143    RM*:SINIX-*:*:*)
    11311144        echo mips-sni-sysv4
    1132         exit 0 ;;
     1145        exit ;;
    11331146    *:SINIX-*:*:*)
    11341147        if uname -p 2>/dev/null >/dev/null ; then
     
    11381151                echo ns32k-sni-sysv
    11391152        fi
    1140         exit 0 ;;
     1153        exit ;;
    11411154    PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
    11421155                      # says <[email protected]>
    11431156        echo i586-unisys-sysv4
    1144         exit 0 ;;
     1157        exit ;;
    11451158    *:UNIX_System_V:4*:FTX*)
    11461159        # From Gerald Hewes <[email protected]>.
    11471160        # How about differentiating between stratus architectures? -djm
    11481161        echo hppa1.1-stratus-sysv4
    1149         exit 0 ;;
     1162        exit ;;
    11501163    *:*:*:FTX*)
    11511164        # From [email protected].
    11521165        echo i860-stratus-sysv4
    1153         exit 0 ;;
     1166        exit ;;
     1167    i*86:VOS:*:*)
     1168        # From [email protected].
     1169        echo ${UNAME_MACHINE}-stratus-vos
     1170        exit ;;
    11541171    *:VOS:*:*)
    11551172        # From [email protected].
    11561173        echo hppa1.1-stratus-vos
    1157         exit 0 ;;
     1174        exit ;;
    11581175    mc68*:A/UX:*:*)
    11591176        echo m68k-apple-aux${UNAME_RELEASE}
    1160         exit 0 ;;
     1177        exit ;;
    11611178    news*:NEWS-OS:6*:*)
    11621179        echo mips-sony-newsos6
    1163         exit 0 ;;
     1180        exit ;;
    11641181    R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
    11651182        if [ -d /usr/nec ]; then
     
    11681185                echo mips-unknown-sysv${UNAME_RELEASE}
    11691186        fi
    1170         exit 0 ;;
     1187        exit ;;
    11711188    BeBox:BeOS:*:*)     # BeOS running on hardware made by Be, PPC only.
    11721189        echo powerpc-be-beos
    1173         exit 0 ;;
     1190        exit ;;
    11741191    BeMac:BeOS:*:*)     # BeOS running on Mac or Mac clone, PPC only.
    11751192        echo powerpc-apple-beos
    1176         exit 0 ;;
     1193        exit ;;
    11771194    BePC:BeOS:*:*)      # BeOS running on Intel PC compatible.
    11781195        echo i586-pc-beos
    1179         exit 0 ;;
     1196        exit ;;
    11801197    SX-4:SUPER-UX:*:*)
    11811198        echo sx4-nec-superux${UNAME_RELEASE}
    1182         exit 0 ;;
     1199        exit ;;
    11831200    SX-5:SUPER-UX:*:*)
    11841201        echo sx5-nec-superux${UNAME_RELEASE}
    1185         exit 0 ;;
     1202        exit ;;
    11861203    SX-6:SUPER-UX:*:*)
    11871204        echo sx6-nec-superux${UNAME_RELEASE}
    1188         exit 0 ;;
     1205        exit ;;
    11891206    Power*:Rhapsody:*:*)
    11901207        echo powerpc-apple-rhapsody${UNAME_RELEASE}
    1191         exit 0 ;;
     1208        exit ;;
    11921209    *:Rhapsody:*:*)
    11931210        echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
    1194         exit 0 ;;
     1211        exit ;;
    11951212    *:Darwin:*:*)
    1196         case `uname -p` in
    1197             *86) UNAME_PROCESSOR=i686 ;;
    1198             powerpc) UNAME_PROCESSOR=powerpc ;;
     1213        UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
     1214        case $UNAME_PROCESSOR in
     1215            unknown) UNAME_PROCESSOR=powerpc ;;
    11991216        esac
    12001217        echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
    1201         exit 0 ;;
     1218        exit ;;
    12021219    *:procnto*:*:* | *:QNX:[0123456789]*:*)
    12031220        UNAME_PROCESSOR=`uname -p`
     
    12071224        fi
    12081225        echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
    1209         exit 0 ;;
     1226        exit ;;
    12101227    *:QNX:*:4*)
    12111228        echo i386-pc-qnx
    1212         exit 0 ;;
     1229        exit ;;
     1230    NSE-?:NONSTOP_KERNEL:*:*)
     1231        echo nse-tandem-nsk${UNAME_RELEASE}
     1232        exit ;;
    12131233    NSR-?:NONSTOP_KERNEL:*:*)
    12141234        echo nsr-tandem-nsk${UNAME_RELEASE}
    1215         exit 0 ;;
     1235        exit ;;
    12161236    *:NonStop-UX:*:*)
    12171237        echo mips-compaq-nonstopux
    1218         exit 0 ;;
     1238        exit ;;
    12191239    BS2000:POSIX*:*:*)
    12201240        echo bs2000-siemens-sysv
    1221         exit 0 ;;
     1241        exit ;;
    12221242    DS/*:UNIX_System_V:*:*)
    12231243        echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
    1224         exit 0 ;;
     1244        exit ;;
    12251245    *:Plan9:*:*)
    12261246        # "uname -m" is not consistent, so use $cputype instead. 386
     
    12331253        fi
    12341254        echo ${UNAME_MACHINE}-unknown-plan9
    1235         exit 0 ;;
     1255        exit ;;
    12361256    *:TOPS-10:*:*)
    12371257        echo pdp10-unknown-tops10
    1238         exit 0 ;;
     1258        exit ;;
    12391259    *:TENEX:*:*)
    12401260        echo pdp10-unknown-tenex
    1241         exit 0 ;;
     1261        exit ;;
    12421262    KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
    12431263        echo pdp10-dec-tops20
    1244         exit 0 ;;
     1264        exit ;;
    12451265    XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
    12461266        echo pdp10-xkl-tops20
    1247         exit 0 ;;
     1267        exit ;;
    12481268    *:TOPS-20:*:*)
    12491269        echo pdp10-unknown-tops20
    1250         exit 0 ;;
     1270        exit ;;
    12511271    *:ITS:*:*)
    12521272        echo pdp10-unknown-its
    1253         exit 0 ;;
     1273        exit ;;
    12541274    SEI:*:*:SEIUX)
    12551275        echo mips-sei-seiux${UNAME_RELEASE}
    1256         exit 0 ;;
     1276        exit ;;
    12571277    *:DragonFly:*:*)
    12581278        echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
    1259         exit 0 ;;
     1279        exit ;;
     1280    *:*VMS:*:*)
     1281        UNAME_MACHINE=`(uname -p) 2>/dev/null`
     1282        case "${UNAME_MACHINE}" in
     1283            A*) echo alpha-dec-vms ; exit ;;
     1284            I*) echo ia64-dec-vms ; exit ;;
     1285            V*) echo vax-dec-vms ; exit ;;
     1286        esac ;;
     1287    *:XENIX:*:SysV)
     1288        echo i386-pc-xenix
     1289        exit ;;
     1290    i*86:skyos:*:*)
     1291        echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
     1292        exit ;;
     1293    i*86:rdos:*:*)
     1294        echo ${UNAME_MACHINE}-pc-rdos
     1295        exit ;;
    12601296esac
    12611297
     
    12891325
    12901326#if defined (__arm) && defined (__acorn) && defined (__unix)
    1291   printf ("arm-acorn-riscix"); exit (0);
     1327  printf ("arm-acorn-riscix\n"); exit (0);
    12921328#endif
    12931329
     
    13781414EOF
    13791415
    1380 $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && exit 0
     1416$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` &&
     1417        { echo "$SYSTEM_NAME"; exit; }
    13811418
    13821419# Apollos put the system type in the environment.
    13831420
    1384 test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; }
     1421test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
    13851422
    13861423# Convex versions that predate uname can use getsysinfo(1)
     
    13911428    c1*)
    13921429        echo c1-convex-bsd
    1393         exit 0 ;;
     1430        exit ;;
    13941431    c2*)
    13951432        if getsysinfo -f scalar_acc
     
    13971434        else echo c2-convex-bsd
    13981435        fi
    1399         exit 0 ;;
     1436        exit ;;
    14001437    c34*)
    14011438        echo c34-convex-bsd
    1402         exit 0 ;;
     1439        exit ;;
    14031440    c38*)
    14041441        echo c38-convex-bsd
    1405         exit 0 ;;
     1442        exit ;;
    14061443    c4*)
    14071444        echo c4-convex-bsd
    1408         exit 0 ;;
     1445        exit ;;
    14091446    esac
    14101447fi
     
    14171454download the most up to date version of the config scripts from
    14181455
    1419     ftp://ftp.gnu.org/pub/gnu/config/
     1456  http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.guess
     1457and
     1458  http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.sub
    14201459
    14211460If the version you run ($0) is already up to date, please
  • vendor/gnumake/current/config/config.rpath

    • Property svn:executable set to *
  • vendor/gnumake/current/config/config.sub

    r152 r501  
    22# Configuration validation subroutine script.
    33#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
    4 #   2000, 2001, 2002, 2003 Free Software Foundation, Inc.
    5 
    6 timestamp='2004-02-23'
     4#   2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation,
     5#   Inc.
     6
     7timestamp='2006-03-07'
    78
    89# This file is (in principle) common to ALL GNU software.
     
    2223# You should have received a copy of the GNU General Public License
    2324# along with this program; if not, write to the Free Software
    24 # Foundation, Inc., 59 Temple Place - Suite 330,
    25 # Boston, MA 02111-1307, USA.
    26 
     25# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
     26# 02110-1301, USA.
     27#
    2728# As a special exception to the GNU General Public License, if you
    2829# distribute this file as part of a program that contains a
    2930# configuration script generated by Autoconf, you may include it under
    3031# the same distribution terms that you use for the rest of that program.
     32
    3133
    3234# Please send patches to <[email protected]>.  Submit a context
     
    7173GNU config.sub ($timestamp)
    7274
    73 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
     75Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
    7476Free Software Foundation, Inc.
    7577
     
    8486  case $1 in
    8587    --time-stamp | --time* | -t )
    86        echo "$timestamp" ; exit 0 ;;
     88       echo "$timestamp" ; exit ;;
    8789    --version | -v )
    88        echo "$version" ; exit 0 ;;
     90       echo "$version" ; exit ;;
    8991    --help | --h* | -h )
    90        echo "$usage"; exit 0 ;;
     92       echo "$usage"; exit ;;
    9193    -- )     # Stop option processing
    9294       shift; break ;;
     
    100102       # First pass through any local machine types.
    101103       echo $1
    102        exit 0;;
     104       exit ;;
    103105
    104106    * )
     
    119121maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
    120122case $maybe_os in
    121   nto-qnx* | linux-gnu* | linux-dietlibc | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | \
    122   kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*)
     123  nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \
     124  uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \
     125  storm-chaos* | os2-emx* | rtmk-nova*)
    123126    os=-$maybe_os
    124127    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
     
    146149        -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
    147150        -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
    148         -apple | -axis)
     151        -apple | -axis | -knuth | -cray)
    149152                os=
    150153                basic_machine=$1
     
    171174                os=-hiuxwe2
    172175                ;;
     176        -sco6)
     177                os=-sco5v6
     178                basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
     179                ;;
    173180        -sco5)
    174181                os=-sco3.2v5
     
    184191                ;;
    185192        -sco3.2v[4-9]*)
     193                # Don't forget version if it is 3.2v4 or newer.
     194                basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
     195                ;;
     196        -sco5v6*)
    186197                # Don't forget version if it is 3.2v4 or newer.
    187198                basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
     
    232243        | am33_2.0 \
    233244        | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \
     245        | bfin \
    234246        | c4x | clipper \
    235247        | d10v | d30v | dlx | dsp16xx \
     
    238250        | i370 | i860 | i960 | ia64 \
    239251        | ip2k | iq2000 \
    240         | m32r | m68000 | m68k | m88k | mcore \
     252        | m32r | m32rle | m68000 | m68k | m88k | maxq | mb | microblaze | mcore \
    241253        | mips | mipsbe | mipseb | mipsel | mipsle \
    242254        | mips16 \
     
    247259        | mips64vr4300 | mips64vr4300el \
    248260        | mips64vr5000 | mips64vr5000el \
     261        | mips64vr5900 | mips64vr5900el \
    249262        | mipsisa32 | mipsisa32el \
    250263        | mipsisa32r2 | mipsisa32r2el \
     
    255268        | mipstx39 | mipstx39el \
    256269        | mn10200 | mn10300 \
     270        | mt \
    257271        | msp430 \
     272        | nios | nios2 \
    258273        | ns16k | ns32k \
    259         | openrisc | or32 \
     274        | or32 \
    260275        | pdp10 | pdp11 | pj | pjl \
    261276        | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
    262277        | pyramid \
    263         | sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \
     278        | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
    264279        | sh64 | sh64le \
    265         | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv9 | sparcv9b \
     280        | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
     281        | sparcv8 | sparcv9 | sparcv9b | sparcv9v \
    266282        | strongarm \
    267283        | tahoe | thumb | tic4x | tic80 | tron \
    268284        | v850 | v850e \
    269285        | we32k \
    270         | x86 | xscale | xstormy16 | xtensa \
     286        | x86 | xscale | xscalee[bl] | xstormy16 | xtensa \
    271287        | z8k)
     288                basic_machine=$basic_machine-unknown
     289                ;;
     290        m32c)
    272291                basic_machine=$basic_machine-unknown
    273292                ;;
     
    278297                ;;
    279298        m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
     299                ;;
     300        ms1)
     301                basic_machine=mt-unknown
    280302                ;;
    281303
     
    299321        | arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
    300322        | avr-* \
    301         | bs2000-* \
     323        | bfin-* | bs2000-* \
    302324        | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
    303         | clipper-* | cydra-* \
     325        | clipper-* | craynv-* | cydra-* \
    304326        | d10v-* | d30v-* | dlx-* \
    305327        | elxsi-* \
     
    309331        | i*86-* | i860-* | i960-* | ia64-* \
    310332        | ip2k-* | iq2000-* \
    311         | m32r-* \
     333        | m32r-* | m32rle-* \
    312334        | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
    313         | m88110-* | m88k-* | mcore-* \
     335        | m88110-* | m88k-* | maxq-* | mcore-* \
    314336        | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
    315337        | mips16-* \
     
    320342        | mips64vr4300-* | mips64vr4300el-* \
    321343        | mips64vr5000-* | mips64vr5000el-* \
     344        | mips64vr5900-* | mips64vr5900el-* \
    322345        | mipsisa32-* | mipsisa32el-* \
    323346        | mipsisa32r2-* | mipsisa32r2el-* \
     
    327350        | mipsisa64sr71k-* | mipsisa64sr71kel-* \
    328351        | mipstx39-* | mipstx39el-* \
     352        | mmix-* \
     353        | mt-* \
    329354        | msp430-* \
    330         | none-* | np1-* | nv1-* | ns16k-* | ns32k-* \
     355        | nios-* | nios2-* \
     356        | none-* | np1-* | ns16k-* | ns32k-* \
    331357        | orion-* \
    332358        | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
     
    334360        | pyramid-* \
    335361        | romp-* | rs6000-* \
    336         | sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \
     362        | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
    337363        | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
    338         | sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \
    339         | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \
     364        | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
     365        | sparclite-* \
     366        | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \
    340367        | tahoe-* | thumb-* \
    341368        | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
     
    343370        | v850-* | v850e-* | vax-* \
    344371        | we32k-* \
    345         | x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \
    346         | xtensa-* \
     372        | x86-* | x86_64-* | xps100-* | xscale-* | xscalee[bl]-* \
     373        | xstormy16-* | xtensa-* \
    347374        | ymp-* \
    348375        | z8k-*)
     376                ;;
     377        m32c-*)
    349378                ;;
    350379        # Recognize the various machine names and aliases which stand
     
    446475                os=-unicos
    447476                ;;
     477        craynv)
     478                basic_machine=craynv-cray
     479                os=-unicosmp
     480                ;;
    448481        cr16c)
    449482                basic_machine=cr16c-unknown
     
    453486                basic_machine=m68k-crds
    454487                ;;
     488        crisv32 | crisv32-* | etraxfs*)
     489                basic_machine=crisv32-axis
     490                ;;
    455491        cris | cris-* | etrax*)
    456492                basic_machine=cris-axis
     
    481517                basic_machine=m88k-motorola
    482518                os=-sysv3
     519                ;;
     520        djgpp)
     521                basic_machine=i586-pc
     522                os=-msdosdjgpp
    483523                ;;
    484524        dpx20 | dpx20-*)
     
    660700                basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
    661701                ;;
    662         mmix*)
    663                 basic_machine=mmix-knuth
    664                 os=-mmixware
    665                 ;;
    666702        monitor)
    667703                basic_machine=m68k-rom68k
     
    675711                basic_machine=i386-pc
    676712                os=-msdos
     713                ;;
     714        ms1-*)
     715                basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
    677716                ;;
    678717        mvs)
     
    744783                basic_machine=np1-gould
    745784                ;;
    746         nv1)
    747                 basic_machine=nv1-cray
    748                 os=-unicosmp
    749                 ;;
    750785        nsr-tandem)
    751786                basic_machine=nsr-tandem
     
    755790                os=-proelf
    756791                ;;
    757         or32 | or32-*)
     792        openrisc | openrisc-*)
    758793                basic_machine=or32-unknown
    759                 os=-coff
    760794                ;;
    761795        os400)
     
    788822                basic_machine=ns32k-pc532
    789823                ;;
     824        pc98)
     825                basic_machine=i386-pc
     826                ;;
     827        pc98-*)
     828                basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
     829                ;;
    790830        pentium | p5 | k5 | k6 | nexgen | viac3)
    791831                basic_machine=i586-pc
     
    844884                os=-pw32
    845885                ;;
     886        rdos)
     887                basic_machine=i386-pc
     888                os=-rdos
     889                ;;
    846890        rom68k)
    847891                basic_machine=m68k-rom68k
     
    10291073                basic_machine=hppa1.1-winbond
    10301074                os=-proelf
     1075                ;;
     1076        xbox)
     1077                basic_machine=i686-pc
     1078                os=-mingw32
    10311079                ;;
    10321080        xps | xps100)
     
    10601108                basic_machine=romp-ibm
    10611109                ;;
     1110        mmix)
     1111                basic_machine=mmix-knuth
     1112                ;;
    10621113        rs6000)
    10631114                basic_machine=rs6000-ibm
     
    10761127                basic_machine=we32k-att
    10771128                ;;
    1078         sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele)
     1129        sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele)
    10791130                basic_machine=sh-unknown
    10801131                ;;
    1081         sh64)
    1082                 basic_machine=sh64-unknown
    1083                 ;;
    1084         sparc | sparcv9 | sparcv9b)
     1132        sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
    10851133                basic_machine=sparc-sun
    10861134                ;;
     
    11551203              | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
    11561204              | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
    1157               | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* | -openbsd* \
     1205              | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
     1206              | -openbsd* | -solidbsd* \
    11581207              | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
    11591208              | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
     
    11621211              | -chorusos* | -chorusrdb* \
    11631212              | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
    1164               | -mingw32* | -linux-gnu* | -linux-uclibc* | -uxpv* | -beos* | -mpeix* | -udk* \
     1213              | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \
     1214              | -uxpv* | -beos* | -mpeix* | -udk* \
    11651215              | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
    11661216              | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
     
    11681218              | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
    11691219              | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
    1170               | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly*)
     1220              | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
     1221              | -skyos* | -haiku* | -rdos*)
    11711222        # Remember, each alternative MUST END IN *, to match a version number.
    11721223                ;;
     
    11861237                ;;
    11871238        -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
    1188               | -windows* | -osx | -abug | -netware* | -os9* | -beos* \
     1239              | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
    11891240              | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
    11901241                ;;
     
    12941345        -kaos*)
    12951346                os=-kaos
     1347                ;;
     1348        -zvmoe)
     1349                os=-zvmoe
    12961350                ;;
    12971351        -none)
     
    13721426                os=-beos
    13731427                ;;
     1428        *-haiku)
     1429                os=-haiku
     1430                ;;
    13741431        *-ibm)
    13751432                os=-aix
     1433                ;;
     1434        *-knuth)
     1435                os=-mmixware
    13761436                ;;
    13771437        *-wec)
     
    15401600
    15411601echo $basic_machine$os
    1542 exit 0
     1602exit
    15431603
    15441604# Local variables:
  • vendor/gnumake/current/config/depcomp

    • Property svn:executable set to *
    r152 r501  
    22# depcomp - compile a program generating dependencies as side-effects
    33
    4 scriptversion=2003-11-08.23
    5 
    6 # Copyright (C) 1999, 2000, 2003 Free Software Foundation, Inc.
     4scriptversion=2005-07-09.11
     5
     6# Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
    77
    88# This program is free software; you can redistribute it and/or modify
     
    1818# You should have received a copy of the GNU General Public License
    1919# along with this program; if not, write to the Free Software
    20 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
    21 # 02111-1307, USA.
     20# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
     21# 02110-1301, USA.
    2222
    2323# As a special exception to the GNU General Public License, if you
     
    4444  source      Source file read by `PROGRAMS ARGS'.
    4545  object      Object file output by `PROGRAMS ARGS'.
     46  DEPDIR      directory where to store dependencies.
    4647  depfile     Dependency file to output.
    4748  tmpdepfile  Temporary file to use when outputing dependencies.
     
    5051Report bugs to <[email protected]>.
    5152EOF
    52     exit 0
     53    exit $?
    5354    ;;
    5455  -v | --v*)
    5556    echo "depcomp $scriptversion"
    56     exit 0
     57    exit $?
    5758    ;;
    5859esac
     
    6263  exit 1
    6364fi
    64 # `libtool' can also be set to `yes' or `no'.
    65 
    66 if test -z "$depfile"; then
    67    base=`echo "$object" | sed -e 's,^.*/,,' -e 's,\.\([^.]*\)$,.P\1,'`
    68    dir=`echo "$object" | sed 's,/.*$,/,'`
    69    if test "$dir" = "$object"; then
    70       dir=
    71    fi
    72    # FIXME: should be _deps on DOS.
    73    depfile="$dir.deps/$base"
    74 fi
    75 
     65
     66# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
     67depfile=${depfile-`echo "$object" |
     68  sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
    7669tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
    7770
     
    295288
    296289   if test "$libtool" = yes; then
    297       tmpdepfile1="$dir.libs/$base.lo.d"
    298       tmpdepfile2="$dir.libs/$base.d"
     290      # With Tru64 cc, shared objects can also be used to make a
     291      # static library.  This mecanism is used in libtool 1.4 series to
     292      # handle both shared and static libraries in a single compilation.
     293      # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d.
     294      #
     295      # With libtool 1.5 this exception was removed, and libtool now
     296      # generates 2 separate objects for the 2 libraries.  These two
     297      # compilations output dependencies in in $dir.libs/$base.o.d and
     298      # in $dir$base.o.d.  We have to check for both files, because
     299      # one of the two compilations can be disabled.  We should prefer
     300      # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
     301      # automatically cleaned when .libs/ is deleted, while ignoring
     302      # the former would cause a distcleancheck panic.
     303      tmpdepfile1=$dir.libs/$base.lo.d   # libtool 1.4
     304      tmpdepfile2=$dir$base.o.d          # libtool 1.5
     305      tmpdepfile3=$dir.libs/$base.o.d    # libtool 1.5
     306      tmpdepfile4=$dir.libs/$base.d      # Compaq CCC V6.2-504
    299307      "$@" -Wc,-MD
    300308   else
    301       tmpdepfile1="$dir$base.o.d"
    302       tmpdepfile2="$dir$base.d"
     309      tmpdepfile1=$dir$base.o.d
     310      tmpdepfile2=$dir$base.d
     311      tmpdepfile3=$dir$base.d
     312      tmpdepfile4=$dir$base.d
    303313      "$@" -MD
    304314   fi
     
    307317   if test $stat -eq 0; then :
    308318   else
    309       rm -f "$tmpdepfile1" "$tmpdepfile2"
     319      rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
    310320      exit $stat
    311321   fi
    312322
    313    if test -f "$tmpdepfile1"; then
    314       tmpdepfile="$tmpdepfile1"
    315    else
    316       tmpdepfile="$tmpdepfile2"
    317    fi
     323   for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
     324   do
     325     test -f "$tmpdepfile" && break
     326   done
    318327   if test -f "$tmpdepfile"; then
    319328      sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
     
    459468
    460469  "$@" -E |
    461     sed -n '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
     470    sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
     471       -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
    462472    sed '$ s: \\$::' > "$tmpdepfile"
    463473  rm -f "$depfile"
  • vendor/gnumake/current/config/dospaths.m4

    r152 r501  
    11# Test if the system uses DOS-style pathnames (drive specs and backslashes)
    22# By Paul Smith <[email protected]>.  Based on dos.m4 by Jim Meyering.
     3
     4# Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
     5# 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
     6# This file is part of GNU Make.
     7#
     8# GNU Make is free software; you can redistribute it and/or modify it under the
     9# terms of the GNU General Public License as published by the Free Software
     10# Foundation; either version 2, or (at your option) any later version.
     11#
     12# GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     13# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     14# A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     15#
     16# You should have received a copy of the GNU General Public License along with
     17# GNU Make; see the file COPYING.  If not, write to the Free Software
     18# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
    319
    420AC_DEFUN([pds_AC_DOS_PATHS],
     
    723      [
    824        AC_COMPILE_IFELSE([
    9 #if !defined _WIN32 && !defined __WIN32__ && !defined __MSDOS__ && !defined __EMX__
     25#if !defined _WIN32 && !defined __WIN32__ && !defined __MSDOS__ && !defined __EMX__ && !defined __MSYS__
    1026neither MSDOS nor Windows nor OS2
    1127#endif
  • vendor/gnumake/current/config/install-sh

    • Property svn:executable set to *
    r152 r501  
    22# install - install a program, script, or datafile
    33
    4 scriptversion=2004-01-12.10
     4scriptversion=2005-05-14.22
    55
    66# This originates from X11R5 (mit/util/scripts/install.sh), which was
     
    5959mkdirprog="${MKDIRPROG-mkdir}"
    6060
    61 transformbasename=
    62 transform_arg=
    63 instcmd="$mvprog"
    6461chmodcmd="$chmodprog 0755"
    6562chowncmd=
     
    7168dst=
    7269dir_arg=
    73 
    74 usage="Usage: $0 [OPTION]... SRCFILE DSTFILE
     70dstarg=
     71no_target_directory=
     72
     73usage="Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
    7574   or: $0 [OPTION]... SRCFILES... DIRECTORY
    76    or: $0 -d DIRECTORIES...
    77 
    78 In the first form, install SRCFILE to DSTFILE, removing SRCFILE by default.
    79 In the second, create the directory path DIR.
     75   or: $0 [OPTION]... -t DIRECTORY SRCFILES...
     76   or: $0 [OPTION]... -d DIRECTORIES...
     77
     78In the 1st form, copy SRCFILE to DSTFILE.
     79In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
     80In the 4th, create DIRECTORIES.
    8081
    8182Options:
    82 -b=TRANSFORMBASENAME
    83 -c         copy source (using $cpprog) instead of moving (using $mvprog).
     83-c         (ignored)
    8484-d         create directories instead of installing files.
    85 -g GROUP   $chgrp installed files to GROUP.
    86 -m MODE    $chmod installed files to MODE.
    87 -o USER    $chown installed files to USER.
    88 -s         strip installed files (using $stripprog).
    89 -t=TRANSFORM
     85-g GROUP   $chgrpprog installed files to GROUP.
     86-m MODE    $chmodprog installed files to MODE.
     87-o USER    $chownprog installed files to USER.
     88-s         $stripprog installed files.
     89-t DIRECTORY  install into DIRECTORY.
     90-T         report an error if DSTFILE is a directory.
    9091--help     display this help and exit.
    9192--version  display version info and exit.
     
    9798while test -n "$1"; do
    9899  case $1 in
    99     -b=*) transformbasename=`echo $1 | sed 's/-b=//'`
    100         shift
    101         continue;;
    102 
    103     -c) instcmd=$cpprog
    104         shift
     100    -c) shift
    105101        continue;;
    106102
     
    114110        continue;;
    115111
    116     --help) echo "$usage"; exit 0;;
     112    --help) echo "$usage"; exit $?;;
    117113
    118114    -m) chmodcmd="$chmodprog $2"
     
    130126        continue;;
    131127
    132     -t=*) transformarg=`echo $1 | sed 's/-t=//'`
    133         shift
    134         continue;;
    135 
    136     --version) echo "$0 $scriptversion"; exit 0;;
     128    -t) dstarg=$2
     129        shift
     130        shift
     131        continue;;
     132
     133    -T) no_target_directory=true
     134        shift
     135        continue;;
     136
     137    --version) echo "$0 $scriptversion"; exit $?;;
    137138
    138139    *)  # When -d is used, all remaining arguments are directories to create.
    139         test -n "$dir_arg" && break
     140        # When -t is used, the destination is already specified.
     141        test -n "$dir_arg$dstarg" && break
    140142        # Otherwise, the last argument is the destination.  Remove it from $@.
    141143        for arg
     
    175177
    176178    if test -d "$dst"; then
    177       instcmd=:
     179      mkdircmd=:
    178180      chmodcmd=
    179181    else
    180       instcmd=$mkdirprog
     182      mkdircmd=$mkdirprog
    181183    fi
    182184  else
    183     # Waiting for this to be detected by the "$instcmd $src $dsttmp" command
     185    # Waiting for this to be detected by the "$cpprog $src $dsttmp" command
    184186    # might cause directories to be created, which would be especially bad
    185187    # if $src (and thus $dsttmp) contains '*'.
     
    203205    # if double slashes aren't ignored.
    204206    if test -d "$dst"; then
     207      if test -n "$no_target_directory"; then
     208        echo "$0: $dstarg: Is a directory" >&2
     209        exit 1
     210      fi
    205211      dst=$dst/`basename "$src"`
    206212    fi
     
    208214
    209215  # This sed command emulates the dirname command.
    210   dstdir=`echo "$dst" | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
     216  dstdir=`echo "$dst" | sed -e 's,/*$,,;s,[^/]*$,,;s,/*$,,;s,^$,.,'`
    211217
    212218  # Make sure that the destination directory exists.
     
    215221  if test ! -d "$dstdir"; then
    216222    defaultIFS='
    217         '
     223         '
    218224    IFS="${IFS-$defaultIFS}"
    219225
     
    221227    # Some sh's can't handle IFS=/ for some reason.
    222228    IFS='%'
    223     set - `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'`
     229    set x `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'`
     230    shift
    224231    IFS=$oIFS
    225232
     
    229236      pathcomp=$pathcomp$1
    230237      shift
    231       test -d "$pathcomp" || $mkdirprog "$pathcomp"
     238      if test ! -d "$pathcomp"; then
     239        $mkdirprog "$pathcomp"
     240        # mkdir can fail with a `File exist' error in case several
     241        # install-sh are creating the directory concurrently.  This
     242        # is OK.
     243        test -d "$pathcomp" || exit
     244      fi
    232245      pathcomp=$pathcomp/
    233246    done
     
    235248
    236249  if test -n "$dir_arg"; then
    237     $doit $instcmd "$dst" \
     250    $doit $mkdircmd "$dst" \
    238251      && { test -z "$chowncmd" || $doit $chowncmd "$dst"; } \
    239252      && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } \
     
    242255
    243256  else
    244     # If we're going to rename the final executable, determine the name now.
    245     if test -z "$transformarg"; then
    246       dstfile=`basename "$dst"`
    247     else
    248       dstfile=`basename "$dst" $transformbasename \
    249                | sed $transformarg`$transformbasename
    250     fi
    251 
    252     # don't allow the sed command to completely eliminate the filename.
    253     test -z "$dstfile" && dstfile=`basename "$dst"`
     257    dstfile=`basename "$dst"`
    254258
    255259    # Make a couple of temp file names in the proper directory.
     
    258262
    259263    # Trap to clean up those temp files at exit.
    260     trap 'status=$?; rm -f "$dsttmp" "$rmtmp" && exit $status' 0
     264    trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
    261265    trap '(exit $?); exit' 1 2 13 15
    262266
    263     # Move or copy the file name to the temp name
    264     $doit $instcmd "$src" "$dsttmp" &&
     267    # Copy the file name to the temp name.
     268    $doit $cpprog "$src" "$dsttmp" &&
    265269
    266270    # and set any options; do chmod last to preserve setuid bits.
     
    268272    # If any of these fail, we abort the whole thing.  If we want to
    269273    # ignore errors from any of these, just make sure not to ignore
    270     # errors from the above "$doit $instcmd $src $dsttmp" command.
     274    # errors from the above "$doit $cpprog $src $dsttmp" command.
    271275    #
    272276    { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \
     
    275279      && { test -z "$chmodcmd" || $doit $chmodcmd "$dsttmp"; } &&
    276280
    277     # Now remove or move aside any old file at destination location.  We
    278     # try this two ways since rm can't unlink itself on some systems and
    279     # the destination file might be busy for other reasons.  In this case,
    280     # the final cleanup might fail but the new file should still install
    281     # successfully.
    282     {
    283       if test -f "$dstdir/$dstfile"; then
    284         $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null \
    285         || $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null \
    286         || {
    287           echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2
    288           (exit 1); exit
    289         }
    290       else
    291         :
    292       fi
    293     } &&
    294 
    295281    # Now rename the file to the real destination.
    296     $doit $mvcmd "$dsttmp" "$dstdir/$dstfile"
    297   fi || { (exit 1); exit; }
     282    { $doit $mvcmd -f "$dsttmp" "$dstdir/$dstfile" 2>/dev/null \
     283      || {
     284           # The rename failed, perhaps because mv can't rename something else
     285           # to itself, or perhaps because mv is so ancient that it does not
     286           # support -f.
     287
     288           # Now remove or move aside any old file at destination location.
     289           # We try this two ways since rm can't unlink itself on some
     290           # systems and the destination file might be busy for other
     291           # reasons.  In this case, the final cleanup might fail but the new
     292           # file should still install successfully.
     293           {
     294             if test -f "$dstdir/$dstfile"; then
     295               $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null \
     296               || $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null \
     297               || {
     298                 echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2
     299                 (exit 1); exit 1
     300               }
     301             else
     302               :
     303             fi
     304           } &&
     305
     306           # Now rename the file to the real destination.
     307           $doit $mvcmd "$dsttmp" "$dstdir/$dstfile"
     308         }
     309    }
     310  fi || { (exit 1); exit 1; }
    298311done
    299312
    300313# The final little trick to "correctly" pass the exit status to the exit trap.
    301314{
    302   (exit 0); exit
     315  (exit 0); exit 0
    303316}
    304317
  • vendor/gnumake/current/config/missing

    • Property svn:executable set to *
    r152 r501  
    22# Common stub for a few missing GNU programs while installing.
    33
    4 scriptversion=2003-09-02.23
    5 
    6 # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003 
     4scriptversion=2005-06-08.21
     5
     6# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005
    77#   Free Software Foundation, Inc.
    88# Originally by Fran,cois Pinard <[email protected]>, 1996.
     
    2020# You should have received a copy of the GNU General Public License
    2121# along with this program; if not, write to the Free Software
    22 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
    23 # 02111-1307, USA.
     22# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
     23# 02110-1301, USA.
    2424
    2525# As a special exception to the GNU General Public License, if you
     
    6161  fi
    6262  ;;
    63 esac
    64 
    65 # If it does not exist, or fails to run (possibly an outdated version),
    66 # try to emulate it.
    67 case "$1" in
    6863
    6964  -h|--h|--he|--hel|--help)
     
    9388
    9489Send bug reports to <[email protected]>."
     90    exit $?
    9591    ;;
    9692
    9793  -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
    9894    echo "missing $scriptversion (GNU Automake)"
     95    exit $?
    9996    ;;
    10097
     
    105102    ;;
    106103
    107   aclocal*)
     104esac
     105
     106# Now exit if we have it, but it failed.  Also exit now if we
     107# don't have it and --version was passed (most likely to detect
     108# the program).
     109case "$1" in
     110  lex|yacc)
     111    # Not GNU programs, they don't have --version.
     112    ;;
     113
     114  tar)
     115    if test -n "$run"; then
     116       echo 1>&2 "ERROR: \`tar' requires --run"
     117       exit 1
     118    elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
     119       exit 1
     120    fi
     121    ;;
     122
     123  *)
    108124    if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
    109125       # We have it, but it failed.
    110126       exit 1
    111     fi
    112 
     127    elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
     128       # Could not run --version or --help.  This is probably someone
     129       # running `$TOOL --version' or `$TOOL --help' to check whether
     130       # $TOOL exists and not knowing $TOOL uses missing.
     131       exit 1
     132    fi
     133    ;;
     134esac
     135
     136# If it does not exist, or fails to run (possibly an outdated version),
     137# try to emulate it.
     138case "$1" in
     139  aclocal*)
    113140    echo 1>&2 "\
    114141WARNING: \`$1' is $msg.  You should only need it if
     
    120147
    121148  autoconf)
    122     if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
    123        # We have it, but it failed.
    124        exit 1
    125     fi
    126 
    127149    echo 1>&2 "\
    128150WARNING: \`$1' is $msg.  You should only need it if
     
    134156
    135157  autoheader)
    136     if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
    137        # We have it, but it failed.
    138        exit 1
    139     fi
    140 
    141158    echo 1>&2 "\
    142159WARNING: \`$1' is $msg.  You should only need it if
     
    158175
    159176  automake*)
    160     if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
    161        # We have it, but it failed.
    162        exit 1
    163     fi
    164 
    165177    echo 1>&2 "\
    166178WARNING: \`$1' is $msg.  You should only need it if
     
    174186
    175187  autom4te)
    176     if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
    177        # We have it, but it failed.
    178        exit 1
    179     fi
    180 
    181188    echo 1>&2 "\
    182189WARNING: \`$1' is needed, but is $msg.
     
    255262
    256263  help2man)
    257     if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
    258        # We have it, but it failed.
    259        exit 1
    260     fi
    261 
    262264    echo 1>&2 "\
    263265WARNING: \`$1' is $msg.  You should only need it if
     
    280282
    281283  makeinfo)
    282     if test -z "$run" && (makeinfo --version) > /dev/null 2>&1; then
    283        # We have makeinfo, but it failed.
    284        exit 1
    285     fi
    286 
    287284    echo 1>&2 "\
    288285WARNING: \`$1' is $msg.  You should only need it if
     
    292289         DU, IRIX).  You might want to install the \`Texinfo' package or
    293290         the \`GNU make' package.  Grab either from any GNU archive site."
     291    # The file to touch is that specified with -o ...
    294292    file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
    295293    if test -z "$file"; then
    296       file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
    297       file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file`
    298     fi
     294      # ... or it is the one specified with @setfilename ...
     295      infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
     296      file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $infile`
     297      # ... or it is derived from the source name (dir/f.texi becomes f.info)
     298      test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
     299    fi
     300    # If the file does not exist, the user really needs makeinfo;
     301    # let's fail without touching anything.
     302    test -f $file || exit 1
    299303    touch $file
    300304    ;;
     
    302306  tar)
    303307    shift
    304     if test -n "$run"; then
    305       echo 1>&2 "ERROR: \`tar' requires --run"
    306       exit 1
    307     fi
    308308
    309309    # We have already tried tar in the generic part.
  • vendor/gnumake/current/config/mkinstalldirs

    • Property svn:executable set to *
  • vendor/gnumake/current/config/texinfo.tex

    r152 r501  
    44\expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
    55%
    6 \def\texinfoversion{2004-02-25.17}
     6\def\texinfoversion{2006-03-21.13}
    77%
    88% Copyright (C) 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995,
    9 % 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software
    10 % Foundation, Inc.
     9% 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free
     10% Software Foundation, Inc.
    1111%
    1212% This texinfo.tex file is free software; you can redistribute it and/or
     
    2222% You should have received a copy of the GNU General Public License
    2323% along with this texinfo.tex file; see the file COPYING.  If not, write
    24 % to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    25 % Boston, MA 02111-1307, USA.
     24% to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
     25% Boston, MA 02110-1301, USA.
    2626%
    2727% As a special exception, when this file is read by TeX when processing
    2828% a Texinfo source document, you may use the result without
    2929% restriction.  (This has been our intent since Texinfo was invented.)
    30 % 
     30%
    3131% Please try the latest version of texinfo.tex before submitting bug
    3232% reports; you can get the latest version from:
     
    5656% extent.  You can get the existing language-specific files from the
    5757% full Texinfo distribution.
    58 % 
     58%
    5959% The GNU Texinfo home page is http://www.gnu.org/software/texinfo.
    6060
     
    9090\let\ptexi=\i
    9191\let\ptexindent=\indent
    92 \let\ptexnoindent=\noindent
    9392\let\ptexinsert=\insert
    9493\let\ptexlbrace=\{
    9594\let\ptexless=<
     95\let\ptexnewwrite\newwrite
     96\let\ptexnoindent=\noindent
    9697\let\ptexplus=+
    9798\let\ptexrbrace=\}
     
    153154\ifx\putwordDeffunc\undefined   \gdef\putwordDeffunc{Function}\fi
    154155
    155 % In some macros, we cannot use the `\? notation---the left quote is
    156 % in some cases the escape char.
    157 \chardef\colonChar = `\:
    158 \chardef\commaChar = `\,
    159 \chardef\dotChar   = `\.
    160 \chardef\exclamChar= `\!
    161 \chardef\questChar = `\?
    162 \chardef\semiChar  = `\;
    163 \chardef\underChar = `\_
    164 
    165 \chardef\spaceChar = `\ %
     156% Since the category of space is not known, we have to be careful.
    166157\chardef\spacecat = 10
    167 \def\spaceisspace{\catcode\spaceChar=\spacecat}
     158\def\spaceisspace{\catcode`\ =\spacecat}
    168159
    169160% Ignore a token.
     
    176167% Hyphenation fixes.
    177168\hyphenation{
    178   Flor-i-da Ghost-script Ghost-view Mac-OS ap-pen-dix bit-map bit-maps
     169  Flor-i-da Ghost-script Ghost-view Mac-OS Post-Script
     170  ap-pen-dix bit-map bit-maps
    179171  data-base data-bases eshell fall-ing half-way long-est man-u-script
    180172  man-u-scripts mini-buf-fer mini-buf-fers over-view par-a-digm
    181   par-a-digms rec-tan-gu-lar ro-bot-ics se-vere-ly set-up spa-ces
     173  par-a-digms rath-er rec-tan-gu-lar ro-bot-ics se-vere-ly set-up spa-ces
     174  spell-ing spell-ings
    182175  stand-alone strong-est time-stamp time-stamps which-ever white-space
    183176  wide-spread wrap-around
     
    300293    % before the \shipout runs.
    301294    %
    302     \escapechar = `\\     % use backslash in output files.
    303295    \indexdummies         % don't expand commands in the output.
    304296    \normalturnoffactive  % \ in index entries must not stay \, e.g., if
    305                    % the page break happens to be in the middle of an example.
     297               % the page break happens to be in the middle of an example.
     298               % We don't want .vr (or whatever) entries like this:
     299               % \entry{{\tt \indexbackslash }acronym}{32}{\code {\acronym}}
     300               % "\acronym" won't work when it's read back in;
     301               % it needs to be
     302               % {\code {{\tt \backslashcurfont }acronym}
    306303    \shipout\vbox{%
    307304      % Do this early so pdf references go to the beginning of the page.
     
    354351      \fi
    355352    }% end of \shipout\vbox
    356   }% end of group with \normalturnoffactive
     353  }% end of group with \indexdummies
    357354  \advancepageno
    358355  \ifnum\outputpenalty>-20000 \else\dosupereject\fi
     
    389386\def\parsearg{\parseargusing{}}
    390387\def\parseargusing#1#2{%
    391   \def\next{#2}%
     388  \def\argtorun{#2}%
    392389  \begingroup
    393390    \obeylines
     
    420417  \def\temp{#3}%
    421418  \ifx\temp\empty
    422     % We cannot use \next here, as it holds the macro to run;
    423     % thus we reuse \temp.
     419    % Do not use \next, perhaps the caller of \parsearg uses it; reuse \temp:
    424420    \let\temp\finishparsearg
    425421  \else
     
    433429% to get _exactly_ the rest of the line, we had to prevent such situation.
    434430% We prepended an \empty token at the very beginning and we expand it now,
    435 % just before passing the control to \next.
     431% just before passing the control to \argtorun.
    436432% (Similarily, we have to think about #3 of \argcheckspacesY above: it is
    437433% either the null string, or it ends with \^^M---thus there is no danger
     
    440436% But first, we have to remove the trailing space token.
    441437%
    442 \def\finishparsearg#1 \ArgTerm{\expandafter\next\expandafter{#1}}
     438\def\finishparsearg#1 \ArgTerm{\expandafter\argtorun\expandafter{#1}}
    443439
    444440% \parseargdef\foo{...}
     
    480476
    481477% Define the framework for environments in texinfo.tex.  It's used like this:
    482 % 
     478%
    483479%   \envdef\foo{...}
    484480%   \def\Efoo{...}
    485 %   
     481%
    486482% It's the responsibility of \envdef to insert \begingroup before the
    487483% actual body; @end closes the group after calling \Efoo.  \envdef also
     
    489485% whether the environment name matches.  The \checkenv macro can also be
    490486% used to check whether the current environment is the one expected.
    491 % 
     487%
    492488% Non-false conditionals (@iftex, @ifset) don't fit into this, so they
    493489% are not treated as enviroments; they don't open a group.  (The
     
    564560\begingroup
    565561  % Definitions to produce \{ and \} commands for indices,
    566   % and @{ and @} for the aux file.
     562  % and @{ and @} for the aux/toc files.
    567563  \catcode`\{ = \other \catcode`\} = \other
    568564  \catcode`\[ = 1 \catcode`\] = 2
     
    606602% The \TeX{} logo, as in plain, but resetting the spacing so that a
    607603% period following counts as ending a sentence.  (Idea found in latex.)
    608 % 
    609 \edef\TeX{\TeX \spacefactor=3000 }
     604%
     605\edef\TeX{\TeX \spacefactor=1000 }
    610606
    611607% @LaTeX{} logo.  Not quite the same results as the definition in
     
    614610% the \scriptstyle font (since we don't reset \scriptstyle and
    615611% \scriptscriptstyle).
    616 % 
     612%
    617613\def\LaTeX{%
    618614  L\kern-.36em
     
    645641
    646642% @. is an end-of-sentence period.
    647 \def\.{.\spacefactor=3000 }
     643\def\.{.\spacefactor=\endofsentencespacefactor\space}
    648644
    649645% @! is an end-of-sentence bang.
    650 \def\!{!\spacefactor=3000 }
     646\def\!{!\spacefactor=\endofsentencespacefactor\space}
    651647
    652648% @? is an end-of-sentence query.
    653 \def\?{?\spacefactor=3000 }
     649\def\?{?\spacefactor=\endofsentencespacefactor\space}
     650
     651% @frenchspacing on|off  says whether to put extra space after punctuation.
     652%
     653\def\onword{on}
     654\def\offword{off}
     655%
     656\parseargdef\frenchspacing{%
     657  \def\temp{#1}%
     658  \ifx\temp\onword \plainfrenchspacing
     659  \else\ifx\temp\offword \plainnonfrenchspacing
     660  \else
     661    \errhelp = \EMsimple
     662    \errmessage{Unknown @frenchspacing option `\temp', must be on/off}%
     663  \fi\fi
     664}
    654665
    655666% @w prevents a word break.  Without the \leavevmode, @w at the
     
    10291040% which is what @var uses.
    10301041{
    1031   \catcode\underChar = \active
     1042  \catcode`\_ = \active
    10321043  \gdef\mathunderscore{%
    1033     \catcode\underChar=\active
     1044    \catcode`\_=\active
    10341045    \def_{\ifnum\fam=\slfam \_\else\sb\fi}%
    10351046  }
     
    10901101\def\enddots{%
    10911102  \dots
    1092   \spacefactor=3000
     1103  \spacefactor=\endofsentencespacefactor
    10931104}
    10941105
    10951106% @comma{} is so commas can be inserted into text without messing up
    10961107% Texinfo's parsing.
    1097 % 
     1108%
    10981109\let\comma = ,
    10991110
     
    11611172\newif\ifpdfmakepagedest
    11621173
     1174% when pdftex is run in dvi mode, \pdfoutput is defined (so \pdfoutput=1
     1175% can be set).  So we test for \relax and 0 as well as \undefined,
     1176% borrowed from ifpdf.sty.
    11631177\ifx\pdfoutput\undefined
    1164   \pdffalse
    1165   \let\pdfmkdest = \gobble
    1166   \let\pdfurl = \gobble
    1167   \let\endlink = \relax
    1168   \let\linkcolor = \relax
    1169   \let\pdfmakeoutlines = \relax
    11701178\else
    1171   \pdftrue
    1172   \pdfoutput = 1
     1179  \ifx\pdfoutput\relax
     1180  \else
     1181    \ifcase\pdfoutput
     1182    \else
     1183      \pdftrue
     1184    \fi
     1185  \fi
     1186\fi
     1187
     1188% PDF uses PostScript string constants for the names of xref targets,
     1189% for display in the outlines, and in other places.  Thus, we have to
     1190% double any backslashes.  Otherwise, a name like "\node" will be
     1191% interpreted as a newline (\n), followed by o, d, e.  Not good.
     1192% http://www.ntg.nl/pipermail/ntg-pdftex/2004-July/000654.html
     1193% (and related messages, the final outcome is that it is up to the TeX
     1194% user to double the backslashes and otherwise make the string valid, so
     1195% that's what we do).
     1196
     1197% double active backslashes.
     1198%
     1199{\catcode`\@=0 \catcode`\\=\active
     1200 @gdef@activebackslashdouble{%
     1201   @catcode`@\=@active
     1202   @let\=@doublebackslash}
     1203}
     1204
     1205% To handle parens, we must adopt a different approach, since parens are
     1206% not active characters.  hyperref.dtx (which has the same problem as
     1207% us) handles it with this amazing macro to replace tokens.  I've
     1208% tinkered with it a little for texinfo, but it's definitely from there.
     1209%
     1210% #1 is the tokens to replace.
     1211% #2 is the replacement.
     1212% #3 is the control sequence with the string.
     1213%
     1214\def\HyPsdSubst#1#2#3{%
     1215  \def\HyPsdReplace##1#1##2\END{%
     1216    ##1%
     1217    \ifx\\##2\\%
     1218    \else
     1219      #2%
     1220      \HyReturnAfterFi{%
     1221        \HyPsdReplace##2\END
     1222      }%
     1223    \fi
     1224  }%
     1225  \xdef#3{\expandafter\HyPsdReplace#3#1\END}%
     1226}
     1227\long\def\HyReturnAfterFi#1\fi{\fi#1}
     1228
     1229% #1 is a control sequence in which to do the replacements.
     1230\def\backslashparens#1{%
     1231  \xdef#1{#1}% redefine it as its expansion; the definition is simply
     1232             % \lastnode when called from \setref -> \pdfmkdest.
     1233  \HyPsdSubst{(}{\realbackslash(}{#1}%
     1234  \HyPsdSubst{)}{\realbackslash)}{#1}%
     1235}
     1236
     1237\ifpdf
    11731238  \input pdfcolor
    11741239  \pdfcatalog{/PageMode /UseOutlines}%
     
    11941259    \fi}
    11951260  \def\pdfmkdest#1{{%
    1196     % We have to set dummies so commands such as @code in a section title
    1197     % aren't expanded.
     1261    % We have to set dummies so commands such as @code, and characters
     1262    % such as \, aren't expanded when present in a section title.
    11981263    \atdummies
    1199     \normalturnoffactive
    1200     \pdfdest name{#1} xyz%
    1201   }}
    1202   \def\pdfmkpgn#1{#1}
     1264    \activebackslashdouble
     1265    \def\pdfdestname{#1}%
     1266    \backslashparens\pdfdestname
     1267    \pdfdest name{\pdfdestname} xyz%
     1268  }}%
     1269  %
     1270  % used to mark target names; must be expandable.
     1271  \def\pdfmkpgn#1{#1}%
     1272  %
    12031273  \let\linkcolor = \Blue  % was Cyan, but that seems light?
    12041274  \def\endlink{\Black\pdfendlink}
     
    12111281    \expandafter\xdef\csname#1\endcsname{\the\tempnum}}
    12121282  %
    1213   % #1 is the section text.  #2 is the pdf expression for the number
    1214   % of subentries (or empty, for subsubsections).  #3 is the node
    1215   % text, which might be empty if this toc entry had no
    1216   % corresponding node.  #4 is the page number.
    1217   %
     1283  % #1 is the section text, which is what will be displayed in the
     1284  % outline by the pdf viewer.  #2 is the pdf expression for the number
     1285  % of subentries (or empty, for subsubsections).  #3 is the node text,
     1286  % which might be empty if this toc entry had no corresponding node.
     1287  % #4 is the page number
     1288  %
    12181289  \def\dopdfoutline#1#2#3#4{%
    12191290    % Generate a link to the node text if that exists; else, use the
    12201291    % page number.  We could generate a destination for the section
    12211292    % text in the case where a section has no node, but it doesn't
    1222     % seem worthwhile, since most documents are normally structured.
     1293    % seem worth the trouble, since most documents are normally structured.
    12231294    \def\pdfoutlinedest{#3}%
    1224     \ifx\pdfoutlinedest\empty \def\pdfoutlinedest{#4}\fi
     1295    \ifx\pdfoutlinedest\empty
     1296      \def\pdfoutlinedest{#4}%
     1297    \else
     1298      % Doubled backslashes in the name.
     1299      {\activebackslashdouble \xdef\pdfoutlinedest{#3}%
     1300       \backslashparens\pdfoutlinedest}%
     1301    \fi
    12251302    %
    1226     \pdfoutline goto name{\pdfmkpgn{\pdfoutlinedest}}#2{#1}%
     1303    % Also double the backslashes in the display string.
     1304    {\activebackslashdouble \xdef\pdfoutlinetext{#1}%
     1305     \backslashparens\pdfoutlinetext}%
     1306    %
     1307    \pdfoutline goto name{\pdfmkpgn{\pdfoutlinedest}}#2{\pdfoutlinetext}%
    12271308  }
    12281309  %
     
    12361317      \def\numchapentry##1##2##3##4{%
    12371318        \def\thischapnum{##2}%
    1238         \let\thissecnum\empty
    1239         \let\thissubsecnum\empty
     1319        \def\thissecnum{0}%
     1320        \def\thissubsecnum{0}%
    12401321      }%
    12411322      \def\numsecentry##1##2##3##4{%
    12421323        \advancenumber{chap\thischapnum}%
    12431324        \def\thissecnum{##2}%
    1244         \let\thissubsecnum\empty
     1325        \def\thissubsecnum{0}%
    12451326      }%
    12461327      \def\numsubsecentry##1##2##3##4{%
     
    12511332        \advancenumber{subsec\thissubsecnum}%
    12521333      }%
    1253       \let\thischapnum\empty
    1254       \let\thissecnum\empty
    1255       \let\thissubsecnum\empty
     1334      \def\thischapnum{0}%
     1335      \def\thissecnum{0}%
     1336      \def\thissubsecnum{0}%
    12561337      %
    12571338      % use \def rather than \let here because we redefine \chapentry et
     
    12651346      \def\unnsubsecentry{\numsubsecentry}%
    12661347      \def\unnsubsubsecentry{\numsubsubsecentry}%
    1267       \input \jobname.toc
     1348      \readdatafile{toc}%
    12681349      %
    12691350      % Read toc second time, this time actually producing the outlines.
    12701351      % The `-' means take the \expnumber as the absolute number of
    12711352      % subentries, which we calculated on our first read of the .toc above.
    1272       % 
     1353      %
    12731354      % We use the node names as the destinations.
    12741355      \def\numchapentry##1##2##3##4{%
     
    12861367      % Latin 2 (0xea) gets translated to a | character.  Info from
    12871368      % Staszek Wawrykiewicz, 19 Jan 2004 04:09:24 +0100.
    1288       % 
     1369      %
    12891370      % xx to do this right, we have to translate 8-bit characters to
    12901371      % their "best" equivalent, based on the @documentencoding.  Right
    12911372      % now, I guess we'll just let the pdf reader have its way.
    12921373      \indexnofonts
    1293       \turnoffactive
     1374      \setupdatafile
     1375      \catcode`\\=\active \otherbackslash
    12941376      \input \jobname.toc
    12951377    \endgroup
    12961378  }
    12971379  %
    1298   \def\makelinks #1,{%
    1299     \def\params{#1}\def\E{END}%
    1300     \ifx\params\E
    1301       \let\nextmakelinks=\relax
    1302     \else
    1303       \let\nextmakelinks=\makelinks
    1304       \ifnum\lnkcount>0,\fi
    1305       \picknum{#1}%
    1306       \startlink attr{/Border [0 0 0]}
    1307         goto name{\pdfmkpgn{\the\pgn}}%
    1308       \linkcolor #1%
    1309       \advance\lnkcount by 1%
    1310       \endlink
    1311     \fi
    1312     \nextmakelinks
    1313   }
    1314   \def\picknum#1{\expandafter\pn#1}
    1315   \def\pn#1{%
    1316     \def\p{#1}%
    1317     \ifx\p\lbrace
    1318       \let\nextpn=\ppn
    1319     \else
    1320       \let\nextpn=\ppnn
    1321       \def\first{#1}
    1322     \fi
    1323     \nextpn
    1324   }
    1325   \def\ppn#1{\pgn=#1\gobble}
    1326   \def\ppnn{\pgn=\first}
    1327   \def\pdfmklnk#1{\lnkcount=0\makelinks #1,END,}
    13281380  \def\skipspaces#1{\def\PP{#1}\def\D{|}%
    13291381    \ifx\PP\D\let\nextsp\relax
     
    13401392    \let \startlink \pdfstartlink
    13411393  \fi
     1394  % make a live url in pdf output.
    13421395  \def\pdfurl#1{%
    13431396    \begingroup
    1344       \normalturnoffactive\def\@{@}%
     1397      % it seems we really need yet another set of dummies; have not
     1398      % tried to figure out what each command should do in the context
     1399      % of @url.  for now, just make @/ a no-op, that's the only one
     1400      % people have actually reported a problem with.
     1401      %
     1402      \normalturnoffactive
     1403      \def\@{@}%
     1404      \let\/=\empty
    13451405      \makevalueexpandable
    13461406      \leavevmode\Red
     
    13731433    \linkcolor #1\endlink}
    13741434  \def\done{\edef\st{\global\noexpand\toksA={\the\toksB}}\st}
    1375 \fi % \ifx\pdfoutput
     1435\else
     1436  \let\pdfmkdest = \gobble
     1437  \let\pdfurl = \gobble
     1438  \let\endlink = \relax
     1439  \let\linkcolor = \relax
     1440  \let\pdfmakeoutlines = \relax
     1441\fi  % \ifx\pdfoutput
    13761442
    13771443
     
    13811447% For now, we do not accumulate font styles: @b{@i{foo}} prints foo in
    13821448% italics, not bold italics.
    1383 % 
     1449%
    13841450\def\setfontstyle#1{%
    13851451  \def\curfontstyle{#1}% not as a control sequence, because we are \edef'd.
     
    13881454
    13891455% Select #1 fonts with the current style.
    1390 % 
     1456%
    13911457\def\selectfonts#1{\csname #1fonts\endcsname \csname\curfontstyle\endcsname}
    13921458
     
    13941460\def\it{\fam=\itfam \setfontstyle{it}}
    13951461\def\sl{\fam=\slfam \setfontstyle{sl}}
    1396 \def\bf{\fam=\bffam \setfontstyle{bf}}
     1462\def\bf{\fam=\bffam \setfontstyle{bf}}\def\bfstylename{bf}
    13971463\def\tt{\fam=\ttfam \setfontstyle{tt}}
    13981464
     
    14561522
    14571523% Text fonts (11.2pt, magstep1).
    1458 \newcount\mainmagstep
    1459 \ifx\bigger\relax
    1460   % not really supported.
    1461   \mainmagstep=\magstep1
    1462   \setfont\textrm\rmshape{12}{1000}
    1463   \setfont\texttt\ttshape{12}{1000}
    1464 \else
    1465   \mainmagstep=\magstephalf
    1466   \setfont\textrm\rmshape{10}{\mainmagstep}
    1467   \setfont\texttt\ttshape{10}{\mainmagstep}
    1468 \fi
     1524\def\textnominalsize{11pt}
     1525\edef\mainmagstep{\magstephalf}
     1526\setfont\textrm\rmshape{10}{\mainmagstep}
     1527\setfont\texttt\ttshape{10}{\mainmagstep}
    14691528\setfont\textbf\bfshape{10}{\mainmagstep}
    14701529\setfont\textit\itshape{10}{\mainmagstep}
     
    14831542
    14841543% Fonts for indices, footnotes, small examples (9pt).
     1544\def\smallnominalsize{9pt}
    14851545\setfont\smallrm\rmshape{9}{1000}
    14861546\setfont\smalltt\ttshape{9}{1000}
     
    14951555
    14961556% Fonts for small examples (8pt).
     1557\def\smallernominalsize{8pt}
    14971558\setfont\smallerrm\rmshape{8}{1000}
    14981559\setfont\smallertt\ttshape{8}{1000}
     
    15071568
    15081569% Fonts for title page (20.4pt):
     1570\def\titlenominalsize{20pt}
    15091571\setfont\titlerm\rmbshape{12}{\magstep3}
    15101572\setfont\titleit\itbshape{10}{\magstep4}
     
    15211583
    15221584% Chapter (and unnumbered) fonts (17.28pt).
     1585\def\chapnominalsize{17pt}
    15231586\setfont\chaprm\rmbshape{12}{\magstep2}
    15241587\setfont\chapit\itbshape{10}{\magstep3}
     
    15331596
    15341597% Section fonts (14.4pt).
     1598\def\secnominalsize{14pt}
    15351599\setfont\secrm\rmbshape{12}{\magstep1}
    15361600\setfont\secit\itbshape{10}{\magstep2}
     
    15451609
    15461610% Subsection fonts (13.15pt).
     1611\def\ssecnominalsize{13pt}
    15471612\setfont\ssecrm\rmbshape{12}{\magstephalf}
    15481613\setfont\ssecit\itbshape{10}{1315}
     
    15571622
    15581623% Reduced fonts for @acro in text (10pt).
     1624\def\reducednominalsize{10pt}
    15591625\setfont\reducedrm\rmshape{10}{1000}
    15601626\setfont\reducedtt\ttshape{10}{1000}
     
    15841650% current \fam for math mode.  Our \STYLE (e.g., \rm) commands hardwire
    15851651% \tenSTYLE to set the current font.
    1586 % 
     1652%
    15871653% Each font-changing command also sets the names \lsize (one size lower)
    15881654% and \lllsize (three sizes lower).  These relative commands are used in
    15891655% the LaTeX logo and acronyms.
    1590 % 
     1656%
    15911657% This all needs generalizing, badly.
    1592 % 
     1658%
    15931659\def\textfonts{%
    15941660  \let\tenrm=\textrm \let\tenit=\textit \let\tensl=\textsl
     
    15961662  \let\tensf=\textsf \let\teni=\texti \let\tensy=\textsy
    15971663  \let\tenttsl=\textttsl
     1664  \def\curfontsize{text}%
    15981665  \def\lsize{reduced}\def\lllsize{smaller}%
    15991666  \resetmathfonts \setleading{\textleading}}
     
    16031670  \let\tensf=\titlesf \let\teni=\titlei \let\tensy=\titlesy
    16041671  \let\tenttsl=\titlettsl
     1672  \def\curfontsize{title}%
    16051673  \def\lsize{chap}\def\lllsize{subsec}%
    16061674  \resetmathfonts \setleading{25pt}}
     
    16091677  \let\tenrm=\chaprm \let\tenit=\chapit \let\tensl=\chapsl
    16101678  \let\tenbf=\chapbf \let\tentt=\chaptt \let\smallcaps=\chapsc
    1611   \let\tensf=\chapsf \let\teni=\chapi \let\tensy=\chapsy \let\tenttsl=\chapttsl
     1679  \let\tensf=\chapsf \let\teni=\chapi \let\tensy=\chapsy
     1680  \let\tenttsl=\chapttsl
     1681  \def\curfontsize{chap}%
    16121682  \def\lsize{sec}\def\lllsize{text}%
    16131683  \resetmathfonts \setleading{19pt}}
     
    16171687  \let\tensf=\secsf \let\teni=\seci \let\tensy=\secsy
    16181688  \let\tenttsl=\secttsl
     1689  \def\curfontsize{sec}%
    16191690  \def\lsize{subsec}\def\lllsize{reduced}%
    16201691  \resetmathfonts \setleading{16pt}}
     
    16241695  \let\tensf=\ssecsf \let\teni=\sseci \let\tensy=\ssecsy
    16251696  \let\tenttsl=\ssecttsl
     1697  \def\curfontsize{ssec}%
    16261698  \def\lsize{text}\def\lllsize{small}%
    16271699  \resetmathfonts \setleading{15pt}}
     
    16321704  \let\tensf=\reducedsf \let\teni=\reducedi \let\tensy=\reducedsy
    16331705  \let\tenttsl=\reducedttsl
     1706  \def\curfontsize{reduced}%
    16341707  \def\lsize{small}\def\lllsize{smaller}%
    16351708  \resetmathfonts \setleading{10.5pt}}
     
    16391712  \let\tensf=\smallsf \let\teni=\smalli \let\tensy=\smallsy
    16401713  \let\tenttsl=\smallttsl
     1714  \def\curfontsize{small}%
    16411715  \def\lsize{smaller}\def\lllsize{smaller}%
    16421716  \resetmathfonts \setleading{10.5pt}}
     
    16461720  \let\tensf=\smallersf \let\teni=\smalleri \let\tensy=\smallersy
    16471721  \let\tenttsl=\smallerttsl
     1722  \def\curfontsize{smaller}%
    16481723  \def\lsize{smaller}\def\lllsize{smaller}%
    16491724  \resetmathfonts \setleading{9.5pt}}
     
    17031778
    17041779\let\i=\smartitalic
     1780\let\slanted=\smartslanted
    17051781\let\var=\smartslanted
    17061782\let\dfn=\smartslanted
    17071783\let\emph=\smartitalic
    17081784
     1785% @b, explicit bold.
    17091786\def\b#1{{\bf #1}}
    17101787\let\strong=\b
     1788
     1789% @sansserif, explicit sans.
     1790\def\sansserif#1{{\sf #1}}
    17111791
    17121792% We can't just use \exhyphenpenalty, because that only has effect at
     
    17211801% sometimes \x has an active definition that messes things up.
    17221802%
     1803\chardef\colonChar = `\:
     1804\chardef\commaChar = `\,
     1805\chardef\dotChar   = `\.
     1806\chardef\exclamChar= `\!
     1807\chardef\questChar = `\?
     1808\chardef\semiChar  = `\;
     1809%
    17231810\catcode`@=11
    1724   \def\frenchspacing{%
     1811  \def\plainfrenchspacing{%
    17251812    \sfcode\dotChar  =\@m \sfcode\questChar=\@m \sfcode\exclamChar=\@m
    17261813    \sfcode\colonChar=\@m \sfcode\semiChar =\@m \sfcode\commaChar =\@m
     1814    \def\endofsentencespacefactor{1000}% for @. and friends
     1815  }
     1816  \def\plainnonfrenchspacing{%
     1817    \sfcode`\.3000\sfcode`\?3000\sfcode`\!3000
     1818    \sfcode`\:2000\sfcode`\;1500\sfcode`\,1250
     1819    \def\endofsentencespacefactor{3000}% for @. and friends
    17271820  }
    17281821\catcode`@=\other
     1822\def\endofsentencespacefactor{3000}% default
    17291823
    17301824\def\t#1{%
    1731   {\tt \rawbackslash \frenchspacing #1}%
     1825  {\tt \rawbackslash \plainfrenchspacing #1}%
    17321826  \null
    17331827}
     
    17661860    %
    17671861    \rawbackslash
    1768     \frenchspacing
     1862    \plainfrenchspacing
    17691863    #1%
    17701864  }%
     
    17861880  %
    17871881  \global\def\code{\begingroup
    1788     \catcode`\-=\active \let-\codedash
    1789     \catcode`\_=\active \let_\codeunder
     1882    \catcode`\-=\active  \catcode`\_=\active
     1883    \ifallowcodebreaks
     1884     \let-\codedash
     1885     \let_\codeunder
     1886    \else
     1887     \let-\realdash
     1888     \let_\realunder
     1889    \fi
    17901890    \codex
    17911891  }
     
    18071907\def\codex #1{\tclose{#1}\endgroup}
    18081908
     1909% An additional complication: the above will allow breaks after, e.g.,
     1910% each of the four underscores in __typeof__.  This is undesirable in
     1911% some manuals, especially if they don't have long identifiers in
     1912% general.  @allowcodebreaks provides a way to control this.
     1913%
     1914\newif\ifallowcodebreaks  \allowcodebreakstrue
     1915
     1916\def\keywordtrue{true}
     1917\def\keywordfalse{false}
     1918
     1919\parseargdef\allowcodebreaks{%
     1920  \def\txiarg{#1}%
     1921  \ifx\txiarg\keywordtrue
     1922    \allowcodebreakstrue
     1923  \else\ifx\txiarg\keywordfalse
     1924    \allowcodebreaksfalse
     1925  \else
     1926    \errhelp = \EMsimple
     1927    \errmessage{Unknown @allowcodebreaks option `\txiarg'}%
     1928  \fi\fi
     1929}
     1930
    18091931% @kbd is like @code, except that if the argument is just one @key command,
    18101932% then @kbd has no effect.
     
    18141936%   or `code' (@kbd uses normal tty font always).
    18151937\parseargdef\kbdinputstyle{%
    1816   \def\arg{#1}%
    1817   \ifx\arg\worddistinct
     1938  \def\txiarg{#1}%
     1939  \ifx\txiarg\worddistinct
    18181940    \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\ttsl}%
    1819   \else\ifx\arg\wordexample
     1941  \else\ifx\txiarg\wordexample
    18201942    \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\tt}%
    1821   \else\ifx\arg\wordcode
     1943  \else\ifx\txiarg\wordcode
    18221944    \gdef\kbdexamplefont{\tt}\gdef\kbdfont{\tt}%
    18231945  \else
    18241946    \errhelp = \EMsimple
    1825     \errmessage{Unknown @kbdinputstyle option `\arg'}%
     1947    \errmessage{Unknown @kbdinputstyle option `\txiarg'}%
    18261948  \fi\fi\fi
    18271949}
     
    18391961\else{\tclose{\kbdfont\look}}\fi}
    18401962
    1841 % For @url, @env, @command quotes seem unnecessary, so use \code.
    1842 \let\url=\code
     1963% For @indicateurl, @env, @command quotes seem unnecessary, so use \code.
     1964\let\indicateurl=\code
    18431965\let\env=\code
    18441966\let\command=\code
     
    18721994\endgroup}
    18731995
     1996% @url synonym for @uref, since that's how everyone uses it.
     1997%
     1998\let\url=\uref
     1999
    18742000% rms does not like angle brackets --karl, 17may97.
    18752001% So now @email is just like @uref, unless we are pdf.
     
    19132039\def\ii#1{{\it #1}}             % italic font
    19142040
     2041% @acronym for "FBI", "NATO", and the like.
     2042% We print this one point size smaller, since it's intended for
     2043% all-uppercase.
     2044%
    19152045\def\acronym#1{\doacronym #1,,\finish}
    19162046\def\doacronym#1,#2,#3\finish{%
     
    19222052}
    19232053
    1924 % @pounds{} is a sterling sign, which is in the CM italic font.
     2054% @abbr for "Comput. J." and the like.
     2055% No font change, but don't do end-of-sentence spacing.
    19252056%
     2057\def\abbr#1{\doabbr #1,,\finish}
     2058\def\doabbr#1,#2,#3\finish{%
     2059  {\plainfrenchspacing #1}%
     2060  \def\temp{#2}%
     2061  \ifx\temp\empty \else
     2062    \space ({\unsepspaces \ignorespaces \temp \unskip})%
     2063  \fi
     2064}
     2065
     2066% @pounds{} is a sterling sign, which Knuth put in the CM italic font.
     2067%
    19262068\def\pounds{{\it\$}}
     2069
     2070% @euro{} comes from a separate font, depending on the current style.
     2071% We use the free feym* fonts from the eurosym package by Henrik
     2072% Theiling, which support regular, slanted, bold and bold slanted (and
     2073% "outlined" (blackboard board, sort of) versions, which we don't need).
     2074% It is available from http://www.ctan.org/tex-archive/fonts/eurosym.
     2075%
     2076% Although only regular is the truly official Euro symbol, we ignore
     2077% that.  The Euro is designed to be slightly taller than the regular
     2078% font height.
     2079%
     2080% feymr - regular
     2081% feymo - slanted
     2082% feybr - bold
     2083% feybo - bold slanted
     2084%
     2085% There is no good (free) typewriter version, to my knowledge.
     2086% A feymr10 euro is ~7.3pt wide, while a normal cmtt10 char is ~5.25pt wide.
     2087% Hmm.
     2088%
     2089% Also doesn't work in math.  Do we need to do math with euro symbols?
     2090% Hope not.
     2091%
     2092%
     2093\def\euro{{\eurofont e}}
     2094\def\eurofont{%
     2095  % We set the font at each command, rather than predefining it in
     2096  % \textfonts and the other font-switching commands, so that
     2097  % installations which never need the symbol don't have to have the
     2098  % font installed.
     2099  %
     2100  % There is only one designed size (nominal 10pt), so we always scale
     2101  % that to the current nominal size.
     2102  %
     2103  % By the way, simply using "at 1em" works for cmr10 and the like, but
     2104  % does not work for cmbx10 and other extended/shrunken fonts.
     2105  %
     2106  \def\eurosize{\csname\curfontsize nominalsize\endcsname}%
     2107  %
     2108  \ifx\curfontstyle\bfstylename
     2109    % bold:
     2110    \font\thiseurofont = \ifusingit{feybo10}{feybr10} at \eurosize
     2111  \else
     2112    % regular:
     2113    \font\thiseurofont = \ifusingit{feymo10}{feymr10} at \eurosize
     2114  \fi
     2115  \thiseurofont
     2116}
    19272117
    19282118% @registeredsymbol - R in a circle.  The font for the R should really
     
    19352125    }$%
    19362126}
     2127
     2128% Laurent Siebenmann reports \Orb undefined with:
     2129%  Textures 1.7.7 (preloaded format=plain 93.10.14)  (68K)  16 APR 2004 02:38
     2130% so we'll define it if necessary.
     2131%
     2132\ifx\Orb\undefined
     2133\def\Orb{\mathhexbox20D}
     2134\fi
    19372135
    19382136
     
    20382236% @author should come last, but may come many times.
    20392237% It can also be used inside @quotation.
    2040 % 
     2238%
    20412239\parseargdef\author{%
    20422240  \def\temp{\quotation}%
     
    22412439    \nobreak \vskip-\parskip
    22422440    %
    2243     % Stop a page break at the \parskip glue coming up.  (Unfortunately
    2244     % we can't prevent a possible page break at the following
    2245     % \baselineskip glue.)  However, if what follows is an environment
    2246     % such as @example, there will be no \parskip glue; then
    2247     % the negative vskip we just would cause the example and the item to
    2248     % crash together.  So we use this bizarre value of 10001 as a signal
    2249     % to \aboveenvbreak to insert \parskip glue after all.
    2250     % (Possibly there are other commands that could be followed by
    2251     % @example which need the same treatment, but not section titles; or
    2252     % maybe section titles are the only special case and they should be
    2253     % penalty 10001...)
     2441    % Stop a page break at the \parskip glue coming up.  However, if
     2442    % what follows is an environment such as @example, there will be no
     2443    % \parskip glue; then the negative vskip we just inserted would
     2444    % cause the example and the item to crash together.  So we use this
     2445    % bizarre value of 10001 as a signal to \aboveenvbreak to insert
     2446    % \parskip glue after all.  Section titles are handled this way also.
     2447    %
    22542448    \penalty 10001
    22552449    \endgroup
     
    22772471\envdef\table{%
    22782472  \let\itemindex\gobble
    2279   \tablex
     2473  \tablecheck{table}%
    22802474}
    22812475\envdef\ftable{%
    22822476  \def\itemindex ##1{\doind {fn}{\code{##1}}}%
    2283   \tablex
     2477  \tablecheck{ftable}%
    22842478}
    22852479\envdef\vtable{%
    22862480  \def\itemindex ##1{\doind {vr}{\code{##1}}}%
    2287   \tablex
     2481  \tablecheck{vtable}%
     2482}
     2483\def\tablecheck#1{%
     2484  \ifnum \the\catcode`\^^M=\active
     2485    \endgroup
     2486    \errmessage{This command won't work in this context; perhaps the problem is
     2487      that we are \inenvironment\thisenv}%
     2488    \def\next{\doignore{#1}}%
     2489  \else
     2490    \let\next\tablex
     2491  \fi
     2492  \next
    22882493}
    22892494\def\tablex#1{%
     
    25382743% #1 is the @columnfraction, usually a decimal number like .5, but might
    25392744% be just 1.  We just use it, whatever it is.
    2540 % 
     2745%
    25412746\def\pickupwholefraction#1 {%
    25422747  \global\advance\colcount by 1
     
    25962801  %
    25972802  % @item within a multitable starts a normal row.
    2598   \let\item\crcr
     2803  % We use \def instead of \let so that if one of the multitable entries
     2804  % contains an @itemize, we don't choke on the \item (seen as \crcr aka
     2805  % \endtemplate) expanding \doitemize.
     2806  \def\item{\crcr}%
    25992807  %
    26002808  \tolerance=9500
     
    26812889}
    26822890
    2683 \def\setmultitablespacing{% test to see if user has set \multitablelinespace.
    2684 % If so, do nothing. If not, give it an appropriate dimension based on
    2685 % current baselineskip.
     2891\def\setmultitablespacing{%
     2892  \def\multistrut{\strut}% just use the standard line spacing
     2893  %
     2894  % Compute \multitablelinespace (if not defined by user) for use in
     2895  % \multitableparskip calculation.  We used define \multistrut based on
     2896  % this, but (ironically) that caused the spacing to be off.
     2897  % See bug-texinfo report from Werner Lemberg, 31 Oct 2004 12:52:20 +0100.
    26862898\ifdim\multitablelinespace=0pt
    26872899\setbox0=\vbox{X}\global\multitablelinespace=\the\baselineskip
    26882900\global\advance\multitablelinespace by-\ht0
    2689 %% strut to put in table in case some entry doesn't have descenders,
    2690 %% to keep lines equally spaced
    2691 \let\multistrut = \strut
    2692 \else
    2693 %% FIXME: what is \box0 supposed to be?
    2694 \gdef\multistrut{\vrule height\multitablelinespace depth\dp0
    2695 width0pt\relax} \fi
     2901\fi
    26962902%% Test to see if parskip is larger than space between lines of
    26972903%% table. If not, do nothing.
     
    27512957\def\doignore#1{\begingroup
    27522958  % Scan in ``verbatim'' mode:
     2959  \obeylines
    27532960  \catcode`\@ = \other
    27542961  \catcode`\{ = \other
     
    27622969  %
    27632970  % Swallow text until we reach the matching `@end #1'.
    2764   \dodoignore {#1}%
     2971  \dodoignore{#1}%
    27652972}
    27662973
     
    27692976  %
    27702977  \gdef\dodoignore#1{%
    2771     % #1 contains the string `ifinfo'.
     2978    % #1 contains the command name as a string, e.g., `ifinfo'.
    27722979    %
    2773     % Define a command to find the next `@end #1', which must be on a line
    2774     % by itself.
    2775     \long\def\doignoretext##1^^M@end #1{\doignoretextyyy##1^^M@#1\_STOP_}%
     2980    % Define a command to find the next `@end #1'.
     2981    \long\def\doignoretext##1^^M@end #1{%
     2982      \doignoretextyyy##1^^M@#1\_STOP_}%
     2983    %
    27762984    % And this command to find another #1 command, at the beginning of a
    27772985    % line.  (Otherwise, we would consider a line `@c @ifset', for
     
    27802988    %
    27812989    % And now expand that command.
    2782     \obeylines %
    27832990    \doignoretext ^^M%
    27842991  }%
     
    27983005
    27993006% We have to swallow the remaining "\_STOP_".
    2800 % 
     3007%
    28013008\def\doignoretextzzz#1{%
    28023009  \ifnum\doignorecount = 0      % We have just found the outermost @end.
     
    28103017
    28113018% Finish off ignored text.
    2812 \def\enddoignore{\endgroup\ignorespaces}
     3019{ \obeylines%
     3020  % Ignore anything after the last `@end #1'; this matters in verbatim
     3021  % environments, where otherwise the newline after an ignored conditional
     3022  % would result in a blank line in the output.
     3023  \gdef\enddoignore#1^^M{\endgroup\ignorespaces}%
     3024}
    28133025
    28143026
     
    29233135
    29243136% Define \newwrite to be identical to plain tex's \newwrite
    2925 % except not \outer, so it can be used within \newindex.
    2926 {\catcode`\@=11
    2927 \gdef\newwrite{\alloc@7\write\chardef\sixt@@n}}
     3137% except not \outer, so it can be used within macros and \if's.
     3138\edef\newwrite{\makecsname{ptexnewwrite}}
    29283139
    29293140% \newindex {foo} defines an index named foo.
     
    30113222%
    30123223\def\indexdummies{%
     3224  \escapechar = `\\     % use backslash in output files.
    30133225  \def\@{@}% change to @@ when we switch to @ as escape char in index files.
    30143226  \def\ {\realbackslash\space }%
     
    30193231  \let\} = \myrbrace
    30203232  %
    3021   % \definedummyword defines \#1 as \realbackslash #1\space, thus
    3022   % effectively preventing its expansion.  This is used only for control
    3023   % words, not control letters, because the \space would be incorrect
    3024   % for control characters, but is needed to separate the control word
    3025   % from whatever follows.
    3026   %
    3027   % For control letters, we have \definedummyletter, which omits the
    3028   % space.
    3029   %
    3030   % These can be used both for control words that take an argument and
    3031   % those that do not.  If it is followed by {arg} in the input, then
    3032   % that will dutifully get written to the index (or wherever).
    3033   %
    3034   \def\definedummyword##1{%
    3035     \expandafter\def\csname ##1\endcsname{\realbackslash ##1\space}%
    3036   }%
    3037   \def\definedummyletter##1{%
    3038     \expandafter\def\csname ##1\endcsname{\realbackslash ##1}%
    3039   }%
    3040   %
    30413233  % Do the redefinitions.
    30423234  \commondummies
    30433235}
    30443236
    3045 % For the aux file, @ is the escape character.  So we want to redefine
    3046 % everything using @ instead of \realbackslash.  When everything uses
    3047 % @, this will be simpler.
     3237% For the aux and toc files, @ is the escape character.  So we want to
     3238% redefine everything using @ as the escape character (instead of
     3239% \realbackslash, still used for index files).  When everything uses @,
     3240% this will be simpler.
    30483241%
    30493242\def\atdummies{%
     
    30533246  \let\} = \rbraceatcmd
    30543247  %
    3055   % (See comments in \indexdummies.)
    3056   \def\definedummyword##1{%
    3057     \expandafter\def\csname ##1\endcsname{@##1\space}%
    3058   }%
    3059   \def\definedummyletter##1{%
    3060     \expandafter\def\csname ##1\endcsname{@##1}%
    3061   }%
    3062   %
    30633248  % Do the redefinitions.
    30643249  \commondummies
    3065 }
    3066 
    3067 % Called from \indexdummies and \atdummies.  \definedummyword and
    3068 % \definedummyletter must be defined first.
     3250  \otherbackslash
     3251}
     3252
     3253% Called from \indexdummies and \atdummies.
    30693254%
    30703255\def\commondummies{%
    30713256  %
     3257  % \definedummyword defines \#1 as \string\#1\space, thus effectively
     3258  % preventing its expansion.  This is used only for control% words,
     3259  % not control letters, because the \space would be incorrect for
     3260  % control characters, but is needed to separate the control word
     3261  % from whatever follows.
     3262  %
     3263  % For control letters, we have \definedummyletter, which omits the
     3264  % space.
     3265  %
     3266  % These can be used both for control words that take an argument and
     3267  % those that do not.  If it is followed by {arg} in the input, then
     3268  % that will dutifully get written to the index (or wherever).
     3269  %
     3270  \def\definedummyword  ##1{\def##1{\string##1\space}}%
     3271  \def\definedummyletter##1{\def##1{\string##1}}%
     3272  \let\definedummyaccent\definedummyletter
     3273  %
     3274  \commondummiesnofonts
     3275  %
     3276  \definedummyletter\_%
     3277  %
     3278  % Non-English letters.
     3279  \definedummyword\AA
     3280  \definedummyword\AE
     3281  \definedummyword\L
     3282  \definedummyword\OE
     3283  \definedummyword\O
     3284  \definedummyword\aa
     3285  \definedummyword\ae
     3286  \definedummyword\l
     3287  \definedummyword\oe
     3288  \definedummyword\o
     3289  \definedummyword\ss
     3290  \definedummyword\exclamdown
     3291  \definedummyword\questiondown
     3292  \definedummyword\ordf
     3293  \definedummyword\ordm
     3294  %
     3295  % Although these internal commands shouldn't show up, sometimes they do.
     3296  \definedummyword\bf
     3297  \definedummyword\gtr
     3298  \definedummyword\hat
     3299  \definedummyword\less
     3300  \definedummyword\sf
     3301  \definedummyword\sl
     3302  \definedummyword\tclose
     3303  \definedummyword\tt
     3304  %
     3305  \definedummyword\LaTeX
     3306  \definedummyword\TeX
     3307  %
     3308  % Assorted special characters.
     3309  \definedummyword\bullet
     3310  \definedummyword\comma
     3311  \definedummyword\copyright
     3312  \definedummyword\registeredsymbol
     3313  \definedummyword\dots
     3314  \definedummyword\enddots
     3315  \definedummyword\equiv
     3316  \definedummyword\error
     3317  \definedummyword\euro
     3318  \definedummyword\expansion
     3319  \definedummyword\minus
     3320  \definedummyword\pounds
     3321  \definedummyword\point
     3322  \definedummyword\print
     3323  \definedummyword\result
     3324  %
     3325  % We want to disable all macros so that they are not expanded by \write.
     3326  \macrolist
     3327  %
    30723328  \normalturnoffactive
    3073   %
    3074   \commondummiesnofonts
    3075   %
    3076   \definedummyletter{_}%
    3077   %
    3078   % Non-English letters.
    3079   \definedummyword{AA}%
    3080   \definedummyword{AE}%
    3081   \definedummyword{L}%
    3082   \definedummyword{OE}%
    3083   \definedummyword{O}%
    3084   \definedummyword{aa}%
    3085   \definedummyword{ae}%
    3086   \definedummyword{l}%
    3087   \definedummyword{oe}%
    3088   \definedummyword{o}%
    3089   \definedummyword{ss}%
    3090   \definedummyword{exclamdown}%
    3091   \definedummyword{questiondown}%
    3092   \definedummyword{ordf}%
    3093   \definedummyword{ordm}%
    3094   %
    3095   % Although these internal commands shouldn't show up, sometimes they do.
    3096   \definedummyword{bf}%
    3097   \definedummyword{gtr}%
    3098   \definedummyword{hat}%
    3099   \definedummyword{less}%
    3100   \definedummyword{sf}%
    3101   \definedummyword{sl}%
    3102   \definedummyword{tclose}%
    3103   \definedummyword{tt}%
    3104   %
    3105   \definedummyword{LaTeX}%
    3106   \definedummyword{TeX}%
    3107   %
    3108   % Assorted special characters.
    3109   \definedummyword{bullet}%
    3110   \definedummyword{copyright}%
    3111   \definedummyword{registeredsymbol}%
    3112   \definedummyword{dots}%
    3113   \definedummyword{enddots}%
    3114   \definedummyword{equiv}%
    3115   \definedummyword{error}%
    3116   \definedummyword{expansion}%
    3117   \definedummyword{minus}%
    3118   \definedummyword{pounds}%
    3119   \definedummyword{point}%
    3120   \definedummyword{print}%
    3121   \definedummyword{result}%
    31223329  %
    31233330  % Handle some cases of @value -- where it does not contain any
    31243331  % (non-fully-expandable) commands.
    31253332  \makevalueexpandable
    3126   %
    3127   % Normal spaces, not active ones.
    3128   \unsepspaces
    3129   %
    3130   % No macro expansion.
    3131   \turnoffmacros
    31323333}
    31333334
    31343335% \commondummiesnofonts: common to \commondummies and \indexnofonts.
    31353336%
    3136 % Better have this without active chars.
    3137 {
    3138   \catcode`\~=\other
    3139   \gdef\commondummiesnofonts{%
    3140     % Control letters and accents.
    3141     \definedummyletter{!}%
    3142     \definedummyletter{"}%
    3143     \definedummyletter{'}%
    3144     \definedummyletter{*}%
    3145     \definedummyletter{,}%
    3146     \definedummyletter{.}%
    3147     \definedummyletter{/}%
    3148     \definedummyletter{:}%
    3149     \definedummyletter{=}%
    3150     \definedummyletter{?}%
    3151     \definedummyletter{^}%
    3152     \definedummyletter{`}%
    3153     \definedummyletter{~}%
    3154     \definedummyword{u}%
    3155     \definedummyword{v}%
    3156     \definedummyword{H}%
    3157     \definedummyword{dotaccent}%
    3158     \definedummyword{ringaccent}%
    3159     \definedummyword{tieaccent}%
    3160     \definedummyword{ubaraccent}%
    3161     \definedummyword{udotaccent}%
    3162     \definedummyword{dotless}%
    3163     %
    3164     % Texinfo font commands.
    3165     \definedummyword{b}%
    3166     \definedummyword{i}%
    3167     \definedummyword{r}%
    3168     \definedummyword{sc}%
    3169     \definedummyword{t}%
    3170     %
    3171     % Commands that take arguments.
    3172     \definedummyword{acronym}%
    3173     \definedummyword{cite}%
    3174     \definedummyword{code}%
    3175     \definedummyword{command}%
    3176     \definedummyword{dfn}%
    3177     \definedummyword{emph}%
    3178     \definedummyword{env}%
    3179     \definedummyword{file}%
    3180     \definedummyword{kbd}%
    3181     \definedummyword{key}%
    3182     \definedummyword{math}%
    3183     \definedummyword{option}%
    3184     \definedummyword{samp}%
    3185     \definedummyword{strong}%
    3186     \definedummyword{tie}%
    3187     \definedummyword{uref}%
    3188     \definedummyword{url}%
    3189     \definedummyword{var}%
    3190     \definedummyword{verb}%
    3191     \definedummyword{w}%
    3192   }
     3337\def\commondummiesnofonts{%
     3338  % Control letters and accents.
     3339  \definedummyletter\!%
     3340  \definedummyaccent\"%
     3341  \definedummyaccent\'%
     3342  \definedummyletter\*%
     3343  \definedummyaccent\,%
     3344  \definedummyletter\.%
     3345  \definedummyletter\/%
     3346  \definedummyletter\:%
     3347  \definedummyaccent\=%
     3348  \definedummyletter\?%
     3349  \definedummyaccent\^%
     3350  \definedummyaccent\`%
     3351  \definedummyaccent\~%
     3352  \definedummyword\u
     3353  \definedummyword\v
     3354  \definedummyword\H
     3355  \definedummyword\dotaccent
     3356  \definedummyword\ringaccent
     3357  \definedummyword\tieaccent
     3358  \definedummyword\ubaraccent
     3359  \definedummyword\udotaccent
     3360  \definedummyword\dotless
     3361  %
     3362  % Texinfo font commands.
     3363  \definedummyword\b
     3364  \definedummyword\i
     3365  \definedummyword\r
     3366  \definedummyword\sc
     3367  \definedummyword\t
     3368  %
     3369  % Commands that take arguments.
     3370  \definedummyword\acronym
     3371  \definedummyword\cite
     3372  \definedummyword\code
     3373  \definedummyword\command
     3374  \definedummyword\dfn
     3375  \definedummyword\emph
     3376  \definedummyword\env
     3377  \definedummyword\file
     3378  \definedummyword\kbd
     3379  \definedummyword\key
     3380  \definedummyword\math
     3381  \definedummyword\option
     3382  \definedummyword\pxref
     3383  \definedummyword\ref
     3384  \definedummyword\samp
     3385  \definedummyword\strong
     3386  \definedummyword\tie
     3387  \definedummyword\uref
     3388  \definedummyword\url
     3389  \definedummyword\var
     3390  \definedummyword\verb
     3391  \definedummyword\w
     3392  \definedummyword\xref
    31933393}
    31943394
     
    31993399%
    32003400\def\indexnofonts{%
    3201   \def\definedummyword##1{%
    3202     \expandafter\let\csname ##1\endcsname\asis
    3203   }%
    3204   \let\definedummyletter=\definedummyword
     3401  % Accent commands should become @asis.
     3402  \def\definedummyaccent##1{\let##1\asis}%
     3403  % We can just ignore other control letters.
     3404  \def\definedummyletter##1{\let##1\empty}%
     3405  % Hopefully, all control words can become @asis.
     3406  \let\definedummyword\definedummyaccent
    32053407  %
    32063408  \commondummiesnofonts
     
    32393441  % (The following {} will end up in the sort string, but that's ok.)
    32403442  \def\bullet{bullet}%
     3443  \def\comma{,}%
    32413444  \def\copyright{copyright}%
    32423445  \def\registeredsymbol{R}%
     
    32453448  \def\equiv{==}%
    32463449  \def\error{error}%
     3450  \def\euro{euro}%
    32473451  \def\expansion{==>}%
    32483452  \def\minus{-}%
     
    32513455  \def\print{-|}%
    32523456  \def\result{=>}%
     3457  %
     3458  % We need to get rid of all macros, leaving only the arguments (if present).
     3459  % Of course this is not nearly correct, but it is the best we can do for now.
     3460  % makeinfo does not expand macros in the argument to @deffn, which ends up
     3461  % writing an index entry, and texindex isn't prepared for an index sort entry
     3462  % that starts with \.
     3463  %
     3464  % Since macro invocations are followed by braces, we can just redefine them
     3465  % to take a single TeX argument.  The case of a macro invocation that
     3466  % goes to end-of-line is not handled.
     3467  %
     3468  \macrolist
    32533469}
    32543470
     
    32973513  % Remember, we are within a group.
    32983514  \indexdummies % Must do this here, since \bf, etc expand at this stage
    3299   \escapechar=`\\
    33003515  \def\backslashcurfont{\indexbackslash}% \indexbackslash isn't defined now
    33013516      % so it will be output as is; and it will print as backslash.
     
    33713586  %
    33723587  \ifx\lastskipmacro\zeroskipmacro
    3373     % if \lastskip was zero, perhaps the last item was a
    3374     % penalty, and perhaps it was >=10000, e.g., a \nobreak.
    3375     % In that case, we want to re-insert the penalty; since we
    3376     % just inserted a non-discardable item, any following glue
    3377     % (such as a \parskip) would be a breakpoint.  For example:
     3588    % If \lastskip was zero, perhaps the last item was a penalty, and
     3589    % perhaps it was >=10000, e.g., a \nobreak.  In that case, we want
     3590    % to re-insert the same penalty (values >10000 are used for various
     3591    % signals); since we just inserted a non-discardable item, any
     3592    % following glue (such as a \parskip) would be a breakpoint.  For example:
     3593    %
    33783594    %   @deffn deffn-whatever
    33793595    %   @vindex index-whatever
     
    33813597    % would allow a break between the index-whatever whatsit
    33823598    % and the "Description." paragraph.
    3383     \ifnum\count255>9999 \nobreak \fi
     3599    \ifnum\count255>9999 \penalty\count255 \fi
    33843600  \else
    33853601    % On the other hand, if we had a nonzero \lastskip,
     
    34793695  %
    34803696  % We like breaks before the index initials, so insert a bonus.
    3481   \penalty -300
     3697  \nobreak
     3698  \vskip 0pt plus 3\baselineskip
     3699  \penalty 0
     3700  \vskip 0pt plus -3\baselineskip
    34823701  %
    34833702  % Typeset the initial.  Making this add up to a whole number of
     
    34893708  \vskip 1.67\baselineskip plus .5\baselineskip
    34903709  \leftline{\secbf #1}%
    3491   \vskip .33\baselineskip plus .1\baselineskip
    3492   %
    34933710  % Do our best not to break after the initial.
    34943711  \nobreak
     3712  \vskip .33\baselineskip plus .1\baselineskip
    34953713}}
    34963714
     
    35043722% @code, which sets - active.  This problem was fixed by a kludge---
    35053723% ``-'' was active throughout whole index, but this isn't really right.
    3506 % 
     3724%
    35073725% The right solution is to prevent \entry from swallowing the whole text.
    35083726%                                 --kasal, 21nov03
     
    37703988% construct for the sake of pdftex, which needs the actual
    37713989% letter in the expansion, not just typeset.
    3772 % 
     3990%
    37733991\def\appendixletter{%
    37743992  \ifnum\appendixno=`A A%
     
    39074125% @chapter, @appendix, @unnumbered.  Increment top-level counter, reset
    39084126% all lower-level sectioning counters to zero.
    3909 % 
     4127%
    39104128% Also set \chaplevelprefix, which we prepend to @float sequence numbers
    39114129% (e.g., figures), q.v.  By default (before any chapter), that is empty.
    39124130\let\chaplevelprefix = \empty
    3913 % 
     4131%
    39144132\outer\parseargdef\chapter{\numhead0{#1}} % normally numhead0 calls chapterzzz
    39154133\def\chapterzzz#1{%
     
    41354353
    41364354% Chapter opening.
    4137 % 
     4355%
    41384356% #1 is the text, #2 is the section type (Ynumbered, Ynothing,
    41394357% Yappendix, Yomitfromtoc), #3 the chapter number.
    4140 % 
     4358%
    41414359% To test against our argument.
    41424360\def\Ynothingkeyword{Ynothing}
     
    41614379      \setbox0 = \hbox{}%
    41624380      \def\toctype{unnchap}%
    4163       \def\thischapter{#1}%
     4381      \gdef\thischapter{#1}%
    41644382    \else\ifx\temptype\Yomitfromtockeyword
    41654383      \setbox0 = \hbox{}% contents like unnumbered, but no toc entry
    41664384      \def\toctype{omit}%
    4167       \xdef\thischapter{}%
     4385      \gdef\thischapter{}%
    41684386    \else\ifx\temptype\Yappendixkeyword
    41694387      \setbox0 = \hbox{\putwordAppendix{} #3\enspace}%
     
    42144432% I don't think this chapter style is supported any more, so I'm not
    42154433% updating it with the new noderef stuff.  We'll see.  --karl, 11aug03.
    4216 % 
     4434%
    42174435\def\setchapterstyle #1 {\csname CHAPF#1\endcsname}
    42184436%
     
    42384456% Section titles.  These macros combine the section number parts and
    42394457% call the generic \sectionheading to do the printing.
    4240 % 
     4458%
    42414459\newskip\secheadingskip
    42424460\def\secheadingbreak{\dobreak \secheadingskip{-1000}}
     
    42524470
    42534471% Print any size, any type, section title.
    4254 % 
     4472%
    42554473% #1 is the text, #2 is the section level (sec/subsec/subsubsec), #3 is
    42564474% the section type for xrefs (Ynumbered, Ynothing, Yappendix), #4 is the
    42574475% section number.
    4258 % 
     4476%
    42594477\def\sectionheading#1#2#3#4{%
    42604478  {%
     
    42894507    \fi\fi\fi
    42904508    %
    4291     % Write the toc entry (before \donoderef).  See comments in \chfplain.
     4509    % Write the toc entry (before \donoderef).  See comments in \chapmacro.
    42924510    \writetocentry{\toctype\sectionlevel}{#1}{#4}%
    42934511    %
    42944512    % Write the node reference (= pdf destination for pdftex).
    4295     % Again, see comments in \chfplain.
     4513    % Again, see comments in \chapmacro.
    42964514    \donoderef{#3}%
     4515    %
     4516    % Interline glue will be inserted when the vbox is completed.
     4517    % That glue will be a valid breakpoint for the page, since it'll be
     4518    % preceded by a whatsit (usually from the \donoderef, or from the
     4519    % \writetocentry if there was no node).  We don't want to allow that
     4520    % break, since then the whatsits could end up on page n while the
     4521    % section is on page n+1, thus toc/etc. are wrong.  Debian bug 276000.
     4522    \nobreak
    42974523    %
    42984524    % Output the actual section heading.
     
    43134539  % discardable item.)
    43144540  \vskip-\parskip
    4315   %
    4316   % This \nobreak is purely so the last item on the list is a \penalty
    4317   % of 10000.  This is so other code, for instance \parsebodycommon, can
    4318   % check for and avoid allowing breakpoints.  Otherwise, it would
    4319   % insert a valid breakpoint between:
     4541  % 
     4542  % This is purely so the last item on the list is a known \penalty >
     4543  % 10000.  This is so \startdefun can avoid allowing breakpoints after
     4544  % section headings.  Otherwise, it would insert a valid breakpoint between:
     4545  %
    43204546  %   @section sec-whatever
    43214547  %   @deffn def-whatever
    4322   \nobreak
     4548  \penalty 10001
    43234549}
    43244550
     
    43294555
    43304556% Write an entry to the toc file, opening it if necessary.
    4331 % Called from @chapter, etc. 
    4332 % 
     4557% Called from @chapter, etc.
     4558%
    43334559% Example usage: \writetocentry{sec}{Section Name}{\the\chapno.\the\secno}
    43344560% We append the current node name (if any) and page number as additional
     
    43364562% read this.  The node name is used in the pdf outlines as the
    43374563% destination to jump to.
    4338 % 
     4564%
    43394565% We open the .toc file for writing here instead of at @setfilename (or
    43404566% any other fixed time) so that @contents can be anywhere in the document.
     
    43544580    %
    43554581    \iflinks
    4356       \toks0 = {#2}%
    4357       \toks2 = \expandafter{\lastnode}%
    4358       \edef\temp{\write\tocfile{\realbackslash #1entry{\the\toks0}{#3}%
    4359                                {\the\toks2}{\noexpand\folio}}}%
    4360       \temp
     4582      {\atdummies
     4583       \edef\temp{%
     4584         \write\tocfile{@#1entry{#2}{#3}{\lastnode}{\noexpand\folio}}}%
     4585       \temp
     4586      }%
    43614587    \fi
    43624588  \fi
     
    43714597}
    43724598
     4599
     4600% These characters do not print properly in the Computer Modern roman
     4601% fonts, so we must take special care.  This is more or less redundant
     4602% with the Texinfo input format setup at the end of this file.
     4603%
     4604\def\activecatcodes{%
     4605  \catcode`\"=\active
     4606  \catcode`\$=\active
     4607  \catcode`\<=\active
     4608  \catcode`\>=\active
     4609  \catcode`\\=\active
     4610  \catcode`\^=\active
     4611  \catcode`\_=\active
     4612  \catcode`\|=\active
     4613  \catcode`\~=\active
     4614}
     4615
     4616
     4617% Read the toc file, which is essentially Texinfo input.
     4618\def\readtocfile{%
     4619  \setupdatafile
     4620  \activecatcodes
     4621  \input \jobname.toc
     4622}
     4623
    43734624\newskip\contentsrightmargin \contentsrightmargin=1in
    43744625\newcount\savepageno
     
    43924643  \savepageno = \pageno
    43934644  \begingroup                  % Set up to handle contents files properly.
    4394     \catcode`\\=0  \catcode`\{=1  \catcode`\}=2  \catcode`\@=11
    4395     % We can't do this, because then an actual ^ in a section
    4396     % title fails, e.g., @chapter ^ -- exponentiation.  --karl, 9jul97.
    4397     %\catcode`\^=7 % to see ^^e4 as \"a etc. [email protected]
    4398     \raggedbottom             % Worry more about breakpoints than the bottom.
     4645    \raggedbottom              % Worry more about breakpoints than the bottom.
    43994646    \advance\hsize by -\contentsrightmargin % Don't use the full line length.
    44004647    %
     
    44094656    \openin 1 \jobname.toc
    44104657    \ifeof 1 \else
    4411       \input \jobname.toc
     4658      \readtocfile
    44124659    \fi
    44134660    \vfill \eject
     
    44474694    \openin 1 \jobname.toc
    44484695    \ifeof 1 \else
    4449       \input \jobname.toc
     4696      \readtocfile
    44504697    \fi
    44514698    \closein 1
     
    44674714  % (This space doesn't include the extra space that gets added after
    44684715  % the label; that gets put in by \shortchapentry above.)
    4469   % 
     4716  %
    44704717  % We'd like to right-justify chapter numbers, but that looks strange
    44714718  % with appendix letters.  And right-justifying numbers and
     
    44924739% Appendices, in the main contents.
    44934740% Need the word Appendix, and a fixed-size box.
    4494 % 
     4741%
    44954742\def\appendixbox#1{%
    44964743  % We use M since it's probably the widest letter.
     
    46374884  \let\*=\ptexstar
    46384885  \let\t=\ptext
     4886  \let\frenchspacing=\plainfrenchspacing
    46394887  %
    46404888  \def\endldots{\mathinner{\ldots\ldots\ldots\ldots}}%
     
    46654913%
    46664914\def\aboveenvbreak{{%
    4667   % =10000 instead of <10000 because of a special case in \itemzzz, q.v.
     4915  % =10000 instead of <10000 because of a special case in \itemzzz and
     4916  % \sectionheading, q.v.
    46684917  \ifnum \lastpenalty=10000 \else
    46694918    \advance\envskipamount by \parskip
     
    46814930\let\afterenvbreak = \aboveenvbreak
    46824931
    4683 % \nonarrowing is a flag.  If "set", @lisp etc don't narrow margins.
     4932% \nonarrowing is a flag.  If "set", @lisp etc don't narrow margins; it will
     4933% also clear it, so that its embedded environments do the narrowing again.
    46844934\let\nonarrowing=\relax
    46854935
     
    47184968  \normbskip=\baselineskip \normpskip=\parskip \normlskip=\lineskip
    47194969  % Flag to tell @lisp, etc., not to narrow margin.
    4720   \let\nonarrowing=\comment
     4970  \let\nonarrowing = t%
    47214971  \vbox\bgroup
    47224972      \baselineskip=0pt\parskip=0pt\lineskip=0pt
     
    47585008  \parindent = 0pt
    47595009  \emergencystretch = 0pt % don't try to avoid overfull boxes
    4760   % @cartouche defines \nonarrowing to inhibit narrowing
    4761   % at next level down.
    47625010  \ifx\nonarrowing\relax
    47635011    \advance \leftskip by \lispnarrowing
    47645012    \exdentamount=\lispnarrowing
     5013  \else
     5014    \let\nonarrowing = \relax
    47655015  \fi
    47665016  \let\exdent=\nofillexdent
     
    48625112    \advance\rightskip by \lispnarrowing
    48635113    \exdentamount = \lispnarrowing
     5114  \else
    48645115    \let\nonarrowing = \relax
    48655116  \fi
     
    48695120% We have retained a nonzero parskip for the environment, since we're
    48705121% doing normal filling.
    4871 % 
     5122%
    48725123\def\Equotation{%
    48735124  \par
     
    49545205\endgroup
    49555206\def\setupverbatim{%
     5207  \let\nonarrowing = t%
    49565208  \nonfillstart
    4957   \advance\leftskip by -\defbodyindent
    49585209  % Easiest (and conventionally used) font for verbatim
    49595210  \tt
     
    50265277
    50275278% @copying ... @end copying.
    5028 % Save the text away for @insertcopying later.  Many commands won't be
    5029 % allowed in this context, but that's ok.
     5279% Save the text away for @insertcopying later.
    50305280%
    50315281% We save the uninterpreted tokens, rather than creating a box.
     
    50365286% possible is very desirable.
    50375287%
    5038 \def\copying{\begingroup
    5039   % Define a command to swallow text until we reach `@end copying'.
    5040   % \ is the escape char in this texinfo.tex file, so it is the
    5041   % delimiter for the command; @ will be the escape char when we read
    5042   % it, but that doesn't matter.
    5043   \long\def\docopying##1\end copying{\gdef\copyingtext{##1}\enddocopying}%
    5044   %
    5045   % We must preserve ^^M's in the input file; see \insertcopying below.
    5046   \catcode`\^^M = \active
    5047   \docopying
    5048 }
    5049 
    5050 % What we do to finish off the copying text.
    5051 %
    5052 \def\enddocopying{\endgroup\ignorespaces}
    5053 
    5054 % @insertcopying.  Here we must play games with ^^M's.  On the one hand,
    5055 % we need them to delimit commands such as `@end quotation', so they
    5056 % must be active.  On the other hand, we certainly don't want every
    5057 % end-of-line to be a \par, as would happen with the normal active
    5058 % definition of ^^M.  On the third hand, two ^^M's in a row should still
    5059 % generate a \par.
    5060 %
    5061 % Our approach is to make ^^M insert a space and a penalty1 normally;
    5062 % then it can also check if \lastpenalty=1.  If it does, then manually
    5063 % do \par.
    5064 %
    5065 % This messes up the normal definitions of @c[omment], so we redefine
    5066 % it.  Similarly for @ignore.  (These commands are used in the gcc
    5067 % manual for man page generation.)
    5068 %
    5069 % Seems pretty fragile, most line-oriented commands will presumably
    5070 % fail, but for the limited use of getting the copying text (which
    5071 % should be quite simple) inserted, we can hope it's ok.
    5072 %
    5073 {\catcode`\^^M=\active %
    5074 \gdef\insertcopying{\begingroup %
    5075   \parindent = 0pt  % looks wrong on title page
    5076   \def^^M{%
    5077     \ifnum \lastpenalty=1 %
    5078       \par %
    5079     \else %
    5080       \space \penalty 1 %
    5081     \fi %
    5082   }%
    5083   %
    5084   % Fix @c[omment] for catcode 13 ^^M's.
    5085   \def\c##1^^M{\ignorespaces}%
    5086   \let\comment = \c %
    5087   %
    5088   % Don't bother jumping through all the hoops that \doignore does, it
    5089   % would be very hard since the catcodes are already set.
    5090   \long\def\ignore##1\end ignore{\ignorespaces}%
    5091   %
    5092   \copyingtext %
    5093 \endgroup}%
     5288\def\copying{\checkenv{}\begingroup\scanargctxt\docopying}
     5289\def\docopying#1@end copying{\endgroup\def\copyingtext{#1}}
     5290%
     5291\def\insertcopying{%
     5292  \begingroup
     5293    \parindent = 0pt  % paragraph indentation looks wrong on title page
     5294    \scanexp\copyingtext
     5295  \endgroup
    50945296}
    50955297
     
    51095311    % which is there to keep the function description together with its
    51105312    % header.  But if there's nothing but headers, we need to allow a
    5111     % break somewhere.  Check for penalty 10002 (inserted by
    5112     % \defargscommonending) instead of 10000, since the sectioning
    5113     % commands insert a \penalty10000, and we don't want to allow a break
    5114     % between a section heading and a defun.
     5313    % break somewhere.  Check specifically for penalty 10002, inserted
     5314    % by \defargscommonending, instead of 10000, since the sectioning
     5315    % commands also insert a nobreak penalty, and we don't want to allow
     5316    % a break between a section heading and a defun.
     5317    %
    51155318    \ifnum\lastpenalty=10002 \penalty2000 \fi
    51165319    %
     
    52725475% #2 is the return type, if any.
    52735476% #3 is the function name.
    5274 % 
     5477%
    52755478% We are followed by (but not passed) the arguments, if any.
    52765479%
     
    53305533% the argument list (groff manual), and ttsl and tt are not very
    53315534% distinguishable.  Prevent hyphenation at `-' chars.
    5332 % 
     5535%
    53335536\def\defunargs#1{%
    5334   % use sl by default (not ttsl), 
     5537  % use sl by default (not ttsl),
    53355538  % tt for the names.
    53365539  \df \sl \hyphenchar\font=0
     
    54365639  \newwrite\macscribble
    54375640  \def\scantokens#1{%
    5438     \toks0={#1\endinput}%
     5641    \toks0={#1}%
    54395642    \immediate\openout\macscribble=\jobname.tmp
    54405643    \immediate\write\macscribble{\the\toks0}%
     
    54495652    \let\xeatspaces\eatspaces
    54505653    % Undo catcode changes of \startcontents and \doprintindex
    5451     \catcode`\@=0 \catcode`\\=\other \escapechar=`\@
     5654    % When called from @insertcopying or (short)caption, we need active
     5655    % backslash to get it printed correctly.  Previously, we had
     5656    % \catcode`\\=\other instead.  We'll see whether a problem appears
     5657    % with macro expansion.                             --kasal, 19aug04
     5658    \catcode`\@=0 \catcode`\\=\active \escapechar=`\@
    54525659    % ... and \example
    54535660    \spaceisspace
     
    54615668}
    54625669
     5670\def\scanexp#1{%
     5671  \edef\temp{\noexpand\scanmacro{#1}}%
     5672  \temp
     5673}
     5674
    54635675\newcount\paramno   % Count of parameters
    54645676\newtoks\macname    % Macro name
    54655677\newif\ifrecursive  % Is it recursive?
    5466 \def\macrolist{}    % List of all defined macros in the form
    5467                     % \do\macro1\do\macro2...
     5678
     5679% List of all defined macros in the form
     5680%    \definedummyword\macro1\definedummyword\macro2...
     5681% Currently is also contains all @aliases; the list can be split
     5682% if there is a need.
     5683\def\macrolist{}
     5684
     5685% Add the macro to \macrolist
     5686\def\addtomacrolist#1{\expandafter \addtomacrolistxxx \csname#1\endcsname}
     5687\def\addtomacrolistxxx#1{%
     5688     \toks0 = \expandafter{\macrolist\definedummyword#1}%
     5689     \xdef\macrolist{\the\toks0}%
     5690}
    54685691
    54695692% Utility routines.
    5470 % This does \let #1 = #2, except with \csnames.
     5693% This does \let #1 = #2, with \csnames; that is,
     5694%   \let \csname#1\endcsname = \csname#2\endcsname
     5695% (except of course we have to play expansion games).
     5696%
    54715697\def\cslet#1#2{%
    5472 \expandafter\expandafter
    5473 \expandafter\let
    5474 \expandafter\expandafter
    5475 \csname#1\endcsname
    5476 \csname#2\endcsname}
     5698  \expandafter\let
     5699  \csname#1\expandafter\endcsname
     5700  \csname#2\endcsname
     5701}
    54775702
    54785703% Trim leading and trailing spaces off a string.
     
    55015726% body, and then making it the \newlinechar in \scanmacro.
    55025727
    5503 \def\macrobodyctxt{%
    5504   \catcode`\~=\other
     5728\def\scanctxt{%
     5729  \catcode`\"=\other
     5730  \catcode`\+=\other
     5731  \catcode`\<=\other
     5732  \catcode`\>=\other
     5733  \catcode`\@=\other
    55055734  \catcode`\^=\other
    55065735  \catcode`\_=\other
    55075736  \catcode`\|=\other
    5508   \catcode`\<=\other
    5509   \catcode`\>=\other
    5510   \catcode`\+=\other
     5737  \catcode`\~=\other
     5738}
     5739
     5740\def\scanargctxt{%
     5741  \scanctxt
     5742  \catcode`\\=\other
     5743  \catcode`\^^M=\other
     5744}
     5745
     5746\def\macrobodyctxt{%
     5747  \scanctxt
    55115748  \catcode`\{=\other
    55125749  \catcode`\}=\other
    5513   \catcode`\@=\other
    55145750  \catcode`\^^M=\other
    5515   \usembodybackslash}
     5751  \usembodybackslash
     5752}
    55165753
    55175754\def\macroargctxt{%
    5518   \catcode`\~=\other
    5519   \catcode`\^=\other
    5520   \catcode`\_=\other
    5521   \catcode`\|=\other
    5522   \catcode`\<=\other
    5523   \catcode`\>=\other
    5524   \catcode`\+=\other
    5525   \catcode`\@=\other
    5526   \catcode`\\=\other}
     5755  \scanctxt
     5756  \catcode`\\=\other
     5757}
    55275758
    55285759% \mbodybackslash is the definition of \ in @macro bodies.
     
    55555786     \global\cslet{macsave.\the\macname}{\the\macname}%
    55565787     \global\expandafter\let\csname ismacro.\the\macname\endcsname=1%
    5557      % Add the macroname to \macrolist
    5558      \toks0 = \expandafter{\macrolist\do}%
    5559      \xdef\macrolist{\the\toks0
    5560        \expandafter\noexpand\csname\the\macname\endcsname}%
     5788     \addtomacrolist{\the\macname}%
    55615789  \fi
    55625790  \begingroup \macrobodyctxt
     
    55725800    \begingroup
    55735801      \expandafter\let\csname#1\endcsname \relax
    5574       \let\do\unmacrodo
     5802      \let\definedummyword\unmacrodo
    55755803      \xdef\macrolist{\macrolist}%
    55765804    \endgroup
     
    55845812%
    55855813\def\unmacrodo#1{%
    5586   \ifx#1\relax
     5814  \ifx #1\relax
    55875815    % remove this
    55885816  \else
    5589     \noexpand\do \noexpand #1%
     5817    \noexpand\definedummyword \noexpand#1%
    55905818  \fi
    55915819}
     
    57005928% line.  Whatever was read is then fed to the next control sequence
    57015929% as an argument (by \parsebrace or \parsearg)
    5702 \def\braceorline#1{\let\next=#1\futurelet\nchar\braceorlinexxx}
     5930\def\braceorline#1{\let\macnamexxx=#1\futurelet\nchar\braceorlinexxx}
    57035931\def\braceorlinexxx{%
    57045932  \ifx\nchar\bgroup\else
    57055933    \expandafter\parsearg
    5706   \fi \next}
    5707 
    5708 % We mant to disable all macros during \shipout so that they are not
    5709 % expanded by \write.
    5710 \def\turnoffmacros{\begingroup \def\do##1{\let\noexpand##1=\relax}%
    5711   \edef\next{\macrolist}\expandafter\endgroup\next}
     5934  \fi \macnamexxx}
    57125935
    57135936
     
    57205943  {%
    57215944    \expandafter\let\obeyedspace=\empty
     5945    \addtomacrolist{#1}%
    57225946    \xdef\next{\global\let\makecsname{#1}=\makecsname{#2}}%
    57235947  }%
     
    57395963
    57405964% @node's only job in TeX is to define \lastnode, which is used in
    5741 % cross-references.
    5742 \parseargdef\node{\checkenv{}\nodexxx #1,\finishnodeparse}
    5743 \def\nodexxx#1,#2\finishnodeparse{\gdef\lastnode{#1}}
     5965% cross-references.  The @node line might or might not have commas, and
     5966% might or might not have spaces before the first comma, like:
     5967% @node foo , bar , ...
     5968% We don't want such trailing spaces in the node name.
     5969%
     5970\parseargdef\node{\checkenv{}\donode #1 ,\finishnodeparse}
     5971%
     5972% also remove a trailing comma, in case of something like this:
     5973% @node Help-Cross,  ,  , Cross-refs
     5974\def\donode#1 ,#2\finishnodeparse{\dodonode #1,\finishnodeparse}
     5975\def\dodonode#1,#2\finishnodeparse{\gdef\lastnode{#1}}
     5976
    57445977\let\nwnode=\node
    57455978\let\lastnode=\empty
     
    57475980% Write a cross-reference definition for the current node.  #1 is the
    57485981% type (Ynumbered, Yappendix, Ynothing).
    5749 % 
     5982%
    57505983\def\donoderef#1{%
    57515984  \ifx\lastnode\empty\else
     
    57706003%                 empty for anchors.
    57716004% 3) NAME-pg    - the page number.
    5772 % 
     6005%
    57736006% This is called from \donoderef, \anchor, and \dofloat.  In the case of
    57746007% floats, there is an additional part, which is not written here:
    57756008% 4) NAME-lof   - the text as it should appear in a @listoffloats.
    5776 % 
     6009%
    57776010\def\setref#1#2{%
    57786011  \pdfmkdest{#1}%
     
    57806013    {%
    57816014      \atdummies  % preserve commands, but don't expand them
    5782       \turnoffactive
    5783       \otherbackslash
    57846015      \edef\writexrdef##1##2{%
    57856016        \write\auxfile{@xrdef{#1-% #1 of \setref, expanded by the \edef
     
    58356066    \leavevmode
    58366067    \getfilename{#4}%
    5837     {\turnoffactive \otherbackslash
     6068    {\turnoffactive
     6069     % See comments at \activebackslashdouble.
     6070     {\activebackslashdouble \xdef\pdfxrefdest{#1}%
     6071      \backslashparens\pdfxrefdest}%
     6072     %
    58386073     \ifnum\filenamelength>0
    58396074       \startlink attr{/Border [0 0 0]}%
    5840          goto file{\the\filename.pdf} name{#1}%
     6075         goto file{\the\filename.pdf} name{\pdfxrefdest}%
    58416076     \else
    58426077       \startlink attr{/Border [0 0 0]}%
    5843          goto name{\pdfmkpgn{#1}}%
     6078         goto name{\pdfmkpgn{\pdfxrefdest}}%
    58446079     \fi
    58456080    }%
     
    58556090    \indexnofonts
    58566091    \turnoffactive
    5857     \otherbackslash
    58586092    \expandafter\global\expandafter\let\expandafter\Xthisreftitle
    58596093      \csname XR#1-title\endcsname
     
    58636097    % print it instead of our usual "Figure 1.2".
    58646098    \ifdim\wd0 = 0pt
    5865       \refx{#1-snt}%
     6099      \refx{#1-snt}{}%
    58666100    \else
    58676101      \printedrefname
     
    58696103    %
    58706104    % if the user also gave the printed manual name (fifth arg), append
    5871     % "in MANUALNAME". 
     6105    % "in MANUALNAME".
    58726106    \ifdim \wd1 > 0pt
    58736107      \space \putwordin{} \cite{\printedmanual}%
     
    58756109  \else
    58766110    % node/anchor (non-float) references.
    5877     % 
     6111    %
    58786112    % If we use \unhbox0 and \unhbox1 to print the node names, TeX does not
    58796113    % insert empty discretionaries after hyphens, which means that it will
     
    58906124      % printing. So we \turnoffactive for the \refx-snt, back on for the
    58916125      % printing, back off for the \refx-pg.
    5892       {\turnoffactive \otherbackslash
     6126      {\turnoffactive
    58936127       % Only output a following space if the -snt ref is nonempty; for
    58946128       % @unnumbered and @anchor, it won't be.
     
    59036137      %
    59046138      % output the `page 3'.
    5905       \turnoffactive \otherbackslash \putwordpage\tie\refx{#1-pg}{}%
     6139      \turnoffactive \putwordpage\tie\refx{#1-pg}{}%
    59066140    \fi
    59076141  \fi
     
    59866220    \expandafter\let\expandafter\floatlist
    59876221      \csname floatlist\iffloattype\endcsname
    5988     % 
     6222    %
    59896223    % Is this the first time we've seen this float type?
    59906224    \expandafter\ifx\floatlist\relax
     
    60026236
    60036237% Read the last existing aux file, if any.  No error if none exists.
    6004 % 
     6238%
    60056239\def\tryauxfile{%
    60066240  \openin 1 \jobname.aux
    60076241  \ifeof 1 \else
    6008     \readauxfile
     6242    \readdatafile{aux}%
    60096243    \global\havexrefstrue
    60106244  \fi
     
    60126246}
    60136247
    6014 \def\readauxfile{\begingroup
     6248\def\setupdatafile{%
    60156249  \catcode`\^^@=\other
    60166250  \catcode`\^^A=\other
     
    60816315  % Make the characters 128-255 be printing characters.
    60826316  {%
    6083     \count 1=128
     6317    \count1=128
    60846318    \def\loop{%
    6085       \catcode\count 1=\other
    6086       \advance\count 1 by 1
    6087       \ifnum \count 1<256 \loop \fi
     6319      \catcode\count1=\other
     6320      \advance\count1 by 1
     6321      \ifnum \count1<256 \loop \fi
    60886322    }%
    60896323  }%
     
    60936327  \catcode`\}=2
    60946328  \catcode`\@=0
    6095   %
    6096   \input \jobname.aux
     6329}
     6330
     6331\def\readdatafile#1{%
     6332\begingroup
     6333  \setupdatafile
     6334  \input\jobname.#1
    60976335\endgroup}
    6098 
    60996336
    61006337\message{insertions,}
     
    62906527    \nobreak\vskip\parskip
    62916528    \nobreak
    6292     \line\bgroup\hss
     6529    \line\bgroup
    62936530  \fi
    62946531  %
     
    63036540  \fi
    63046541  %
    6305   \ifimagevmode \hss \egroup \bigbreak \fi  % space after the image
     6542  \ifimagevmode \egroup \bigbreak \fi  % space after the image
    63066543\endgroup}
    63076544
    63086545
    6309 % @float FLOATTYPE,LOC ... @end float for displayed figures, tables, etc.
    6310 % We don't actually implement floating yet, we just plop the float "here".
    6311 % But it seemed the best name for the future.
    6312 %
    6313 \envparseargdef\float{\dofloat #1,,,\finish}
     6546% @float FLOATTYPE,LABEL,LOC ... @end float for displayed figures, tables,
     6547% etc.  We don't actually implement floating yet, we always include the
     6548% float "here".  But it seemed the best name for the future.
     6549%
     6550\envparseargdef\float{\eatcommaspace\eatcommaspace\dofloat#1, , ,\finish}
     6551
     6552% There may be a space before second and/or third parameter; delete it.
     6553\def\eatcommaspace#1, {#1,}
    63146554
    63156555% #1 is the optional FLOATTYPE, the text label for this float, typically
    63166556% "Figure", "Table", "Example", etc.  Can't contain commas.  If omitted,
    63176557% this float will not be numbered and cannot be referred to.
    6318 % 
     6558%
    63196559% #2 is the optional xref label.  Also must be present for the float to
    63206560% be referable.
    6321 % 
     6561%
    63226562% #3 is the optional positioning argument; for now, it is ignored.  It
    63236563% will somehow specify the positions allowed to float to (here, top, bottom).
    6324 % 
     6564%
    63256565% We keep a separate counter for each FLOATTYPE, which we reset at each
    63266566% chapter-level command.
     
    63326572  %
    63336573  % don't lose footnotes inside @float.
     6574  %
     6575  % BEWARE: when the floats start float, we have to issue warning whenever an
     6576  % insert appears inside a float which could possibly float. --kasal, 26may04
     6577  %
    63346578  \startsavinginserts
    63356579  %
     
    63586602      % We want each FLOATTYPE to be numbered separately (Figure 1,
    63596603      % Table 1, Figure 2, ...).  (And if no label, no number.)
    6360       % 
     6604      %
    63616605      \expandafter\getfloatno\csname\safefloattype floatno\endcsname
    63626606      \global\advance\floatno by 1
     
    63686612        % node and anchor labels.  And \xrdef uses it to construct the
    63696613        % lists of floats.
    6370         % 
     6614        %
    63716615        \edef\thissection{\floatmagic=\safefloattype}%
    63726616        \setref{\floatlabel}{Yfloat}%
     
    64166660      %
    64176661      % caption text.
    6418       \appendtomacro\captionline\thiscaption
     6662      \appendtomacro\captionline{\scanexp\thiscaption}%
    64196663    \fi
    64206664    %
     
    64246668      \vskip.5\parskip
    64256669      \captionline
     6670      %
     6671      % Space below caption.
     6672      \vskip\parskip
    64266673    \fi
    64276674    %
     
    64336680      % caption if specified, else the full caption if specified, else nothing.
    64346681      {%
    6435         \atdummies \turnoffactive \otherbackslash
    6436         \immediate\write\auxfile{@xrdef{\floatlabel-lof}{%
    6437           \floatident
    6438           \ifx\thisshortcaption\empty
    6439             \ifx\thiscaption\empty \else : \thiscaption \fi
    6440           \else
    6441             : \thisshortcaption
    6442           \fi
    6443         }}%
     6682        \atdummies
     6683        %
     6684        % since we read the caption text in the macro world, where ^^M
     6685        % is turned into a normal character, we have to scan it back, so
     6686        % we don't write the literal three characters "^^M" into the aux file.
     6687        \scanexp{%
     6688          \xdef\noexpand\gtemp{%
     6689            \ifx\thisshortcaption\empty
     6690              \thiscaption
     6691            \else
     6692              \thisshortcaption
     6693            \fi
     6694          }%
     6695        }%
     6696        \immediate\write\auxfile{@xrdef{\floatlabel-lof}{\floatident
     6697          \ifx\gtemp\empty \else : \gtemp \fi}}%
    64446698      }%
    64456699    \fi
    6446     %
    6447     % Space below caption, if we printed anything.
    6448     \ifx\printedsomething\empty \else \vskip\parskip \fi
    64496700  \egroup  % end of \vtop
     6701  %
     6702  % place the captured inserts
     6703  %
     6704  % BEWARE: when the floats start floating, we have to issue warning
     6705  % whenever an insert appears inside a float which could possibly
     6706  % float. --kasal, 26may04
     6707  %
    64506708  \checkinserts
    64516709}
    64526710
    64536711% Append the tokens #2 to the definition of macro #1, not expanding either.
    6454 %
    6455 \newtoks\appendtomacroAtoks
    6456 \newtoks\appendtomacroBtoks
     6712%
    64576713\def\appendtomacro#1#2{%
    6458   \appendtomacroAtoks = \expandafter{#1}%
    6459   \appendtomacroBtoks = {#2}%
    6460   \edef#1{\the\appendtomacroAtoks \the\appendtomacroBtoks}%
    6461 }
    6462 
    6463 % @caption, @shortcaption are easy.
    6464 %
    6465 \long\def\caption#1{\checkenv\float \def\thiscaption{#1}}
    6466 \def\shortcaption#1{\checkenv\float \def\thisshortcaption{#1}}
     6714  \expandafter\def\expandafter#1\expandafter{#1#2}%
     6715}
     6716
     6717% @caption, @shortcaption
     6718%
     6719\def\caption{\docaption\thiscaption}
     6720\def\shortcaption{\docaption\thisshortcaption}
     6721\def\docaption{\checkenv\float \bgroup\scanargctxt\defcaption}
     6722\def\defcaption#1#2{\egroup \def#1{#2}}
    64676723
    64686724% The parameter is the control sequence identifying the counter we are
     
    64836739% to the FLOATLABEL to expand to "Figure 3.1".  We call \setref when we
    64846740% first read the @float command.
    6485 % 
     6741%
    64866742\def\Yfloat{\floattype@tie \chaplevelprefix\the\floatno}%
    64876743
     
    64936749% which is true if #1 represents a float ref.  That is, the magic
    64946750% \thissection value which we \setref above.
    6495 % 
     6751%
    64966752\def\iffloat#1{\expandafter\doiffloat#1==\finish}
    64976753%
    64986754% #1 is (maybe) the \floatmagic string.  If so, #2 will be the
    64996755% (safe) float type for this float.  We set \iffloattype to #2.
    6500 % 
     6756%
    65016757\def\doiffloat#1=#2=#3\finish{%
    65026758  \def\temp{#1}%
     
    65066762
    65076763% @listoffloats FLOATTYPE - print a list of floats like a table of contents.
    6508 % 
     6764%
    65096765\parseargdef\listoffloats{%
    65106766  \def\floattype{#1}% floattype
     
    65366792% aux file.  We strip off the -title and look up \XRLABEL-lof, which
    65376793% has the text we're supposed to typeset here.
    6538 % 
     6794%
    65396795% Figures without xref labels will not be included in the list (since
    65406796% they won't appear in the aux file).
    6541 % 
     6797%
    65426798\def\listoffloatsdo#1{\listoffloatsdoentry#1\finish}
    65436799\def\listoffloatsdoentry#1-title\finish{{%
     
    66166872}
    66176873
    6618 % Parameters in order: 1) textheight; 2) textwidth; 3) voffset;
    6619 % 4) hoffset; 5) binding offset; 6) topskip; 7) physical page height; 8)
    6620 % physical page width.
     6874% Parameters in order: 1) textheight; 2) textwidth;
     6875% 3) voffset; 4) hoffset; 5) binding offset; 6) topskip;
     6876% 7) physical page height; 8) physical page width.
    66216877%
    66226878% We also call \setleading{\textleading}, so the caller should define
     
    66656921}}
    66666922
    6667 % Use @smallbook to reset parameters for 7x9.5 (or so) format.
     6923% Use @smallbook to reset parameters for 7x9.25 trim size.
    66686924\def\smallbook{{\globaldefs = 1
    66696925  \parskip = 2pt plus 1pt
     
    66806936  \contentsrightmargin = 0pt
    66816937  \defbodyindent = .5cm
     6938}}
     6939
     6940% Use @smallerbook to reset parameters for 6x9 trim size.
     6941% (Just testing, parameters still in flux.)
     6942\def\smallerbook{{\globaldefs = 1
     6943  \parskip = 1.5pt plus 1pt
     6944  \textleading = 12pt
     6945  %
     6946  \internalpagesizes{7.4in}{4.8in}%
     6947                    {-.2in}{-.4in}%
     6948                    {0pt}{14pt}%
     6949                    {9in}{6in}%
     6950  %
     6951  \lispnarrowing = 0.25in
     6952  \tolerance = 700
     6953  \hfuzz = 1pt
     6954  \contentsrightmargin = 0pt
     6955  \defbodyindent = .4cm
    66826956}}
    66836957
     
    68347108\catcode`\_=\active
    68357109\def_{\ifusingtt\normalunderscore\_}
     7110\let\realunder=_
    68367111% Subroutine for the previous macro.
    68377112\def\_{\leavevmode \kern.07em \vbox{\hrule width.3em height.1ex}\kern .07em }
     
    68567131\def\otherifyactive{\catcode`+=\other \catcode`\_=\other}
    68577132
     7133% Used sometimes to turn off (effectively) the active characters even after
     7134% parsing them.
     7135\def\turnoffactive{%
     7136  \normalturnoffactive
     7137  \otherbackslash
     7138}
     7139
    68587140\catcode`\@=0
    68597141
     
    68637145\global\let\rawbackslashxx=\backslashcurfont  % let existing .??s files work
    68647146
     7147% \realbackslash is an actual character `\' with catcode other, and
     7148% \doublebackslash is two of them (for the pdf outlines).
     7149{\catcode`\\=\other @gdef@realbackslash{\} @gdef@doublebackslash{\\}}
     7150
     7151% In texinfo, backslash is an active character; it prints the backslash
     7152% in fixed width font.
     7153\catcode`\\=\active
     7154@def@normalbackslash{{@tt@backslashcurfont}}
     7155% On startup, @fixbackslash assigns:
     7156%  @let \ = @normalbackslash
     7157
    68657158% \rawbackslash defines an active \ to do \backslashcurfont.
    68667159% \otherbackslash defines an active \ to be a literal `\' character with
    68677160% catcode other.
    6868 {\catcode`\\=\active
    6869  @gdef@rawbackslash{@let\=@backslashcurfont}
    6870  @gdef@otherbackslash{@let\=@realbackslash}
    6871 }
    6872 
    6873 % \realbackslash is an actual character `\' with catcode other.
    6874 {\catcode`\\=\other @gdef@realbackslash{\}}
    6875 
    6876 % \normalbackslash outputs one backslash in fixed width font.
    6877 \def\normalbackslash{{\tt\backslashcurfont}}
    6878 
    6879 \catcode`\\=\active
    6880 
    6881 % Used sometimes to turn off (effectively) the active characters
    6882 % even after parsing them.
    6883 @def@turnoffactive{%
     7161@gdef@rawbackslash{@let\=@backslashcurfont}
     7162@gdef@otherbackslash{@let\=@realbackslash}
     7163
     7164% Same as @turnoffactive except outputs \ as {\tt\char`\\} instead of
     7165% the literal character `\'.
     7166%
     7167@def@normalturnoffactive{%
     7168  @let\=@normalbackslash
    68847169  @let"=@normaldoublequote
    6885   @let\=@realbackslash
    68867170  @let~=@normaltilde
    68877171  @let^=@normalcaret
     
    68957179}
    68967180
    6897 % Same as @turnoffactive except outputs \ as {\tt\char`\\} instead of
    6898 % the literal character `\'.  (Thus, \ is not expandable when this is in
    6899 % effect.)
    6900 %
    6901 @def@normalturnoffactive{@turnoffactive @let\=@normalbackslash}
    6902 
    69037181% Make _ and + \other characters, temporarily.
    69047182% This is canceled by @fixbackslash.
     
    69137191
    69147192% On the other hand, perhaps the file did not have a `\input texinfo'. Then
    6915 % the first `\{ in the file would cause an error. This macro tries to fix
     7193% the first `\' in the file would cause an error. This macro tries to fix
    69167194% that, assuming it is called before the first `\' could plausibly occur.
    6917 % Also back turn on active characters that might appear in the input
     7195% Also turn back on active characters that might appear in the input
    69187196% file name, in case not using a pre-dumped format.
    69197197%
  • vendor/gnumake/current/configh.dos

    r152 r501  
     1/* configh.dos -- hand-massaged config.h file for MS-DOS builds         -*-C-*-
     2
     3Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
     42004, 2005, 2006 Free Software Foundation, Inc.
     5This file is part of GNU Make.
     6
     7GNU Make is free software; you can redistribute it and/or modify it under the
     8terms of the GNU General Public License as published by the Free Software
     9Foundation; either version 2, or (at your option) any later version.
     10
     11GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     12WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     13A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     14
     15You should have received a copy of the GNU General Public License along with
     16GNU Make; see the file COPYING.  If not, write to the Free Software
     17Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
    118
    219/* Many things are defined already by a system header.  */
     
    7794
    7895/* Define to the full name and version of this package. */
    79 #define PACKAGE_STRING "GNU make 3.81beta1"
     96#define PACKAGE_STRING "GNU make 3.81"
    8097
    8198/* Define to the one symbol short name of this package. */
     
    83100
    84101/* Define to the version of this package. */
    85 #define PACKAGE_VERSION "3.81beta1"
     102#define PACKAGE_VERSION "3.81"
    86103
    87104/* Define to 1 if the C compiler supports function prototypes. */
     
    92109
    93110/* Version number of package */
    94 #define VERSION "3.81beta1"
     111#define VERSION "3.81"
    95112
    96113/* Build host information. */
  • vendor/gnumake/current/configure

    • Property svn:executable set to *
    r152 r501  
    11#! /bin/sh
    2 # From configure.in Id: configure.in,v 1.125 2004/03/06 08:05:19 psmith Exp .
     2# From configure.in Id: configure.in,v 1.142 2006/04/01 06:36:40 psmith Exp .
    33# Guess values for system-dependent variables and create Makefiles.
    4 # Generated by GNU Autoconf 2.59 for GNU make 3.81beta1.
     4# Generated by GNU Autoconf 2.59 for GNU make 3.81.
    55#
    66# Report bugs to <[email protected]>.
     
    271271PACKAGE_NAME='GNU make'
    272272PACKAGE_TARNAME='make'
    273 PACKAGE_VERSION='3.81beta1'
    274 PACKAGE_STRING='GNU make 3.81beta1'
     273PACKAGE_VERSION='3.81'
     274PACKAGE_STRING='GNU make 3.81'
    275275PACKAGE_BUGREPORT='[email protected]'
    276276
     
    313313#endif"
    314314
    315 ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO AMTAR install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE RANLIB ac_ct_RANLIB CPP AR PERL build build_cpu build_vendor build_os host host_cpu host_vendor host_os EGREP U ANSI2KNR MKINSTALLDIRS USE_NLS MSGFMT GMSGFMT XGETTEXT MSGMERGE LIBICONV LTLIBICONV INTLLIBS LIBINTL LTLIBINTL POSUB ALLOCA LIBOBJS NEED_SETGID KMEM_GROUP GETLOADAVG_LIBS REMOTE USE_CUSTOMS_TRUE USE_CUSTOMS_FALSE GLOBINC GLOBLIB USE_LOCAL_GLOB_TRUE USE_LOCAL_GLOB_FALSE MAKE_HOST LTLIBOBJS'
     315ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE RANLIB ac_ct_RANLIB CPP AR PERL build build_cpu build_vendor build_os host host_cpu host_vendor host_os EGREP U ANSI2KNR MKINSTALLDIRS USE_NLS MSGFMT GMSGFMT XGETTEXT MSGMERGE LIBICONV LTLIBICONV INTLLIBS LIBINTL LTLIBINTL POSUB ALLOCA LIBOBJS NEED_SETGID KMEM_GROUP GETLOADAVG_LIBS REMOTE USE_CUSTOMS_TRUE USE_CUSTOMS_FALSE GLOBINC GLOBLIB USE_LOCAL_GLOB_TRUE USE_LOCAL_GLOB_FALSE MAKE_HOST WINDOWSENV_TRUE WINDOWSENV_FALSE LTLIBOBJS'
    316316ac_subst_files='MAINT_MAKEFILE'
    317317
     
    782782  # This message is too long to be a string in the A/UX 3.1 sh.
    783783  cat <<_ACEOF
    784 \`configure' configures GNU make 3.81beta1 to adapt to many kinds of systems.
     784\`configure' configures GNU make 3.81 to adapt to many kinds of systems.
    785785
    786786Usage: $0 [OPTION]... [VAR=VALUE]...
     
    848848if test -n "$ac_init_help"; then
    849849  case $ac_init_help in
    850      short | recursive ) echo "Configuration of GNU make 3.81beta1:";;
     850     short | recursive ) echo "Configuration of GNU make 3.81:";;
    851851   esac
    852852  cat <<\_ACEOF
     
    860860  --disable-rpath         do not hardcode runtime library paths
    861861  --disable-largefile     omit support for large files
     862  --enable-case-insensitive-file-system
     863                          enable case insensitive file system support
    862864  --disable-job-server    disallow recursive make communication during -jN
    863865
     
    975977      echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
    976978    fi
    977     cd $ac_popdir
     979    cd "$ac_popdir"
    978980  done
    979981fi
     
    982984if $ac_init_version; then
    983985  cat <<\_ACEOF
    984 GNU make configure 3.81beta1
     986GNU make configure 3.81
    985987generated by GNU Autoconf 2.59
    986988
     
    996998running configure, to aid debugging if configure makes a mistake.
    997999
    998 It was created by GNU make $as_me 3.81beta1, which was
     1000It was created by GNU make $as_me 3.81, which was
    9991001generated by GNU Autoconf 2.59.  Invocation command line was
    10001002
     
    13671369
    13681370# Automake setup
    1369 am__api_version="1.8"
     1371am__api_version="1.9"
    13701372# Find a good install program.  We prefer a C program (faster),
    13711373# so one script is as good as another.  But avoid the broken or
     
    15181520fi
    15191521
    1520 if mkdir -p -- . 2>/dev/null; then
    1521   # Keeping the `.' argument allows $(mkdir_p) to be used without
    1522   # argument.  Indeed, we sometimes output rules like
     1522if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
     1523  # We used to keeping the `.' as first argument, in order to
     1524  # allow $(mkdir_p) to be used without argument.  As in
    15231525  #   $(mkdir_p) $(somedir)
    1524   # where $(somedir) is conditionally defined.
    1525   # (`test -n '$(somedir)' && $(mkdir_p) $(somedir)' is a more
    1526   # expensive solution, as it forces Make to start a sub-shell.)
    1527   mkdir_p='mkdir -p -- .'
     1526  # where $(somedir) is conditionally defined.  However this is wrong
     1527  # for two reasons:
     1528  #  1. if the package is installed by a user who cannot write `.'
     1529  #     make install will fail,
     1530  #  2. the above comment should most certainly read
     1531  #     $(mkdir_p) $(DESTDIR)$(somedir)
     1532  #     so it does not work when $(somedir) is undefined and
     1533  #     $(DESTDIR) is not.
     1534  #  To support the latter case, we have to write
     1535  #     test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir),
     1536  #  so the `.' trick is pointless.
     1537  mkdir_p='mkdir -p --'
    15281538else
    15291539  # On NextStep and OpenStep, the `mkdir' command does not
     
    15311541  # directories to create, and then abort because `.' already
    15321542  # exists.
    1533   for d in ./-p ./--;
     1543  for d in ./-p ./--version;
    15341544  do
    15351545    test -d $d && rmdir $d
     
    16411651# Define the identity of the package.
    16421652 PACKAGE='make'
    1643  VERSION='3.81beta1'
     1653 VERSION='3.81'
    16441654
    16451655
     
    16681678
    16691679MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
    1670 
    1671 
    1672 AMTAR=${AMTAR-"${am_missing_run}tar"}
    16731680
    16741681install_sh=${install_sh-"$am_aux_dir/install-sh"}
     
    17641771# We need awk for the "check" target.  The system "awk" is bad on
    17651772# some platforms.
     1773# Always define AMTAR for backward compatibility.
     1774
     1775AMTAR=${AMTAR-"${am_missing_run}tar"}
     1776
     1777am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'
     1778
     1779
    17661780
    17671781
     
    23372351  echo "$as_me:$LINENO: \$? = $ac_status" >&5
    23382352  (exit $ac_status); } &&
    2339          { ac_try='test -z "$ac_c_werror_flag"
    2340                          || test ! -s conftest.err'
     2353         { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
    23412354  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    23422355  (eval $ac_try) 2>&5
     
    23962409  echo "$as_me:$LINENO: \$? = $ac_status" >&5
    23972410  (exit $ac_status); } &&
    2398          { ac_try='test -z "$ac_c_werror_flag"
    2399                          || test ! -s conftest.err'
     2411         { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
    24002412  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    24012413  (eval $ac_try) 2>&5
     
    25132525  echo "$as_me:$LINENO: \$? = $ac_status" >&5
    25142526  (exit $ac_status); } &&
    2515          { ac_try='test -z "$ac_c_werror_flag"
    2516                          || test ! -s conftest.err'
     2527         { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
    25172528  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    25182529  (eval $ac_try) 2>&5
     
    25682579  echo "$as_me:$LINENO: \$? = $ac_status" >&5
    25692580  (exit $ac_status); } &&
    2570          { ac_try='test -z "$ac_c_werror_flag"
    2571                          || test ! -s conftest.err'
     2581         { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
    25722582  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    25732583  (eval $ac_try) 2>&5
     
    26142624  echo "$as_me:$LINENO: \$? = $ac_status" >&5
    26152625  (exit $ac_status); } &&
    2616          { ac_try='test -z "$ac_c_werror_flag"
    2617                          || test ! -s conftest.err'
     2626         { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
    26182627  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    26192628  (eval $ac_try) 2>&5
     
    26592668  echo "$as_me:$LINENO: \$? = $ac_status" >&5
    26602669  (exit $ac_status); } &&
    2661          { ac_try='test -z "$ac_c_werror_flag"
    2662                          || test ! -s conftest.err'
     2670         { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
    26632671  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    26642672  (eval $ac_try) 2>&5
     
    28052813    for i in 1 2 3 4 5 6; do
    28062814      echo '#include "conftst'$i'.h"' >> sub/conftest.c
    2807       : > sub/conftst$i.h
     2815      # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
     2816      # Solaris 8's {/usr,}/bin/sh.
     2817      touch sub/conftst$i.h
    28082818    done
    28092819    echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
     
    28332843       ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
    28342844      # icc doesn't choke on unknown options, it will just issue warnings
    2835       # (even with -Werror).  So we grep stderr for any message
    2836       # that says an option was ignored.
    2837       if grep 'ignoring option' conftest.err >/dev/null 2>&1; then :; else
     2845      # or remarks (even with -Werror).  So we grep stderr for any message
     2846      # that says an option was ignored or not supported.
     2847      # When given -MP, icc 7.0 and 7.1 complain thusly:
     2848      #   icc: Command line warning: ignoring option '-M'; no argument required
     2849      # The diagnosis changed in icc 8.0:
     2850      #   icc: Command line remark: option '-MP' not supported
     2851      if (grep 'ignoring option' conftest.err ||
     2852          grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
    28382853        am_cv_CC_dependencies_compiler_type=$depmode
    28392854        break
     
    34723487  echo "$as_me:$LINENO: \$? = $ac_status" >&5
    34733488  (exit $ac_status); } &&
    3474          { ac_try='test -z "$ac_c_werror_flag"
    3475                          || test ! -s conftest.err'
     3489         { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
    34763490  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    34773491  (eval $ac_try) 2>&5
     
    35273541  echo "$as_me:$LINENO: \$? = $ac_status" >&5
    35283542  (exit $ac_status); } &&
    3529          { ac_try='test -z "$ac_c_werror_flag"
    3530                          || test ! -s conftest.err'
     3543         { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
    35313544  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    35323545  (eval $ac_try) 2>&5
     
    35933606  echo "$as_me:$LINENO: \$? = $ac_status" >&5
    35943607  (exit $ac_status); } &&
    3595          { ac_try='test -z "$ac_c_werror_flag"
    3596                          || test ! -s conftest.err'
     3608         { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
    35973609  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    35983610  (eval $ac_try) 2>&5
     
    37643776  echo "$as_me:$LINENO: \$? = $ac_status" >&5
    37653777  (exit $ac_status); } &&
    3766          { ac_try='test -z "$ac_c_werror_flag"
    3767                          || test ! -s conftest.err'
     3778         { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
    37683779  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    37693780  (eval $ac_try) 2>&5
     
    38283839  echo "$as_me:$LINENO: \$? = $ac_status" >&5
    38293840  (exit $ac_status); } &&
    3830          { ac_try='test -z "$ac_c_werror_flag"
    3831                          || test ! -s conftest.err'
     3841         { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
    38323842  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    38333843  (eval $ac_try) 2>&5
     
    40244034  echo "$as_me:$LINENO: \$? = $ac_status" >&5
    40254035  (exit $ac_status); } &&
    4026          { ac_try='test -z "$ac_c_werror_flag"
    4027                          || test ! -s conftest.err'
     4036         { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
    40284037  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    40294038  (eval $ac_try) 2>&5
     
    50725081  echo "$as_me:$LINENO: \$? = $ac_status" >&5
    50735082  (exit $ac_status); } &&
    5074          { ac_try='test -z "$ac_c_werror_flag"
    5075                          || test ! -s conftest.err'
     5083         { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
    50765084  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    50775085  (eval $ac_try) 2>&5
     
    51645172  echo "$as_me:$LINENO: \$? = $ac_status" >&5
    51655173  (exit $ac_status); } &&
    5166          { ac_try='test -z "$ac_c_werror_flag"
    5167                          || test ! -s conftest.err'
     5174         { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
    51685175  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    51695176  (eval $ac_try) 2>&5
     
    52155222  echo "$as_me:$LINENO: \$? = $ac_status" >&5
    52165223  (exit $ac_status); } &&
    5217          { ac_try='test -z "$ac_c_werror_flag"
    5218                          || test ! -s conftest.err'
     5224         { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
    52195225  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    52205226  (eval $ac_try) 2>&5
     
    56825688  echo "$as_me:$LINENO: \$? = $ac_status" >&5
    56835689  (exit $ac_status); } &&
    5684          { ac_try='test -z "$ac_c_werror_flag"
    5685                          || test ! -s conftest.err'
     5690         { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
    56865691  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    56875692  (eval $ac_try) 2>&5
     
    57375742  echo "$as_me:$LINENO: \$? = $ac_status" >&5
    57385743  (exit $ac_status); } &&
    5739          { ac_try='test -z "$ac_c_werror_flag"
    5740                          || test ! -s conftest.err'
     5744         { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
    57415745  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    57425746  (eval $ac_try) 2>&5
     
    59255929  echo "$as_me:$LINENO: \$? = $ac_status" >&5
    59265930  (exit $ac_status); } &&
    5927          { ac_try='test -z "$ac_c_werror_flag"
    5928                          || test ! -s conftest.err'
     5931         { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
    59295932  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    59305933  (eval $ac_try) 2>&5
     
    59555958  echo "$as_me:$LINENO: \$? = $ac_status" >&5
    59565959  (exit $ac_status); } &&
    5957          { ac_try='test -z "$ac_c_werror_flag"
    5958                          || test ! -s conftest.err'
     5960         { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
    59595961  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    59605962  (eval $ac_try) 2>&5
     
    60266028  echo "$as_me:$LINENO: \$? = $ac_status" >&5
    60276029  (exit $ac_status); } &&
    6028          { ac_try='test -z "$ac_c_werror_flag"
    6029                          || test ! -s conftest.err'
     6030         { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
    60306031  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    60316032  (eval $ac_try) 2>&5
     
    60796080  echo "$as_me:$LINENO: \$? = $ac_status" >&5
    60806081  (exit $ac_status); } &&
    6081          { ac_try='test -z "$ac_c_werror_flag"
    6082                          || test ! -s conftest.err'
     6082         { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
    60836083  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    60846084  (eval $ac_try) 2>&5
     
    61516151  echo "$as_me:$LINENO: \$? = $ac_status" >&5
    61526152  (exit $ac_status); } &&
    6153          { ac_try='test -z "$ac_c_werror_flag"
    6154                          || test ! -s conftest.err'
     6153         { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
    61556154  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    61566155  (eval $ac_try) 2>&5
     
    62046203  echo "$as_me:$LINENO: \$? = $ac_status" >&5
    62056204  (exit $ac_status); } &&
    6206          { ac_try='test -z "$ac_c_werror_flag"
    6207                          || test ! -s conftest.err'
     6205         { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
    62086206  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    62096207  (eval $ac_try) 2>&5
     
    62796277  echo "$as_me:$LINENO: \$? = $ac_status" >&5
    62806278  (exit $ac_status); } &&
    6281          { ac_try='test -z "$ac_c_werror_flag"
    6282                          || test ! -s conftest.err'
     6279         { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
    62836280  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    62846281  (eval $ac_try) 2>&5
     
    63346331  echo "$as_me:$LINENO: \$? = $ac_status" >&5
    63356332  (exit $ac_status); } &&
    6336          { ac_try='test -z "$ac_c_werror_flag"
    6337                          || test ! -s conftest.err'
     6333         { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
    63386334  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    63396335  (eval $ac_try) 2>&5
     
    64026398  echo "$as_me:$LINENO: \$? = $ac_status" >&5
    64036399  (exit $ac_status); } &&
    6404          { ac_try='test -z "$ac_c_werror_flag"
    6405                          || test ! -s conftest.err'
     6400         { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
    64066401  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    64076402  (eval $ac_try) 2>&5
     
    65756570  echo "$as_me:$LINENO: \$? = $ac_status" >&5
    65766571  (exit $ac_status); } &&
    6577          { ac_try='test -z "$ac_c_werror_flag"
    6578                          || test ! -s conftest.err'
     6572         { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
    65796573  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    65806574  (eval $ac_try) 2>&5
     
    66486642  echo "$as_me:$LINENO: \$? = $ac_status" >&5
    66496643  (exit $ac_status); } &&
    6650          { ac_try='test -z "$ac_c_werror_flag"
    6651                          || test ! -s conftest.err'
     6644         { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
    66526645  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    66536646  (eval $ac_try) 2>&5
     
    67036696  echo "$as_me:$LINENO: \$? = $ac_status" >&5
    67046697  (exit $ac_status); } &&
    6705          { ac_try='test -z "$ac_c_werror_flag"
    6706                          || test ! -s conftest.err'
     6698         { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
    67076699  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    67086700  (eval $ac_try) 2>&5
     
    67756767  echo "$as_me:$LINENO: \$? = $ac_status" >&5
    67766768  (exit $ac_status); } &&
    6777          { ac_try='test -z "$ac_c_werror_flag"
    6778                          || test ! -s conftest.err'
     6769         { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
    67796770  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    67806771  (eval $ac_try) 2>&5
     
    68306821  echo "$as_me:$LINENO: \$? = $ac_status" >&5
    68316822  (exit $ac_status); } &&
    6832          { ac_try='test -z "$ac_c_werror_flag"
    6833                          || test ! -s conftest.err'
     6823         { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
    68346824  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    68356825  (eval $ac_try) 2>&5
     
    69566946  echo "$as_me:$LINENO: \$? = $ac_status" >&5
    69576947  (exit $ac_status); } &&
    6958          { ac_try='test -z "$ac_c_werror_flag"
    6959                          || test ! -s conftest.err'
     6948         { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
    69606949  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    69616950  (eval $ac_try) 2>&5
     
    69986987
    69996988
     6989
    70006990for ac_header in stdlib.h locale.h unistd.h limits.h fcntl.h string.h \
    7001                  memory.h sys/param.h sys/time.h sys/timeb.h
     6991                 memory.h sys/param.h sys/resource.h sys/time.h sys/timeb.h
    70026992do
    70036993as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
     
    70327022  echo "$as_me:$LINENO: \$? = $ac_status" >&5
    70337023  (exit $ac_status); } &&
    7034          { ac_try='test -z "$ac_c_werror_flag"
    7035                          || test ! -s conftest.err'
     7024         { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
    70367025  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    70377026  (eval $ac_try) 2>&5
     
    71957184  echo "$as_me:$LINENO: \$? = $ac_status" >&5
    71967185  (exit $ac_status); } &&
    7197          { ac_try='test -z "$ac_c_werror_flag"
    7198                          || test ! -s conftest.err'
     7186         { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
    71997187  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    72007188  (eval $ac_try) 2>&5
     
    74907478  echo "$as_me:$LINENO: \$? = $ac_status" >&5
    74917479  (exit $ac_status); } &&
    7492          { ac_try='test -z "$ac_c_werror_flag"
    7493                          || test ! -s conftest.err'
     7480         { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
    74947481  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    74957482  (eval $ac_try) 2>&5
     
    75617548  echo "$as_me:$LINENO: \$? = $ac_status" >&5
    75627549  (exit $ac_status); } &&
    7563          { ac_try='test -z "$ac_c_werror_flag"
    7564                          || test ! -s conftest.err'
     7550         { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
    75657551  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    75667552  (eval $ac_try) 2>&5
     
    76617647  echo "$as_me:$LINENO: \$? = $ac_status" >&5
    76627648  (exit $ac_status); } &&
    7663          { ac_try='test -z "$ac_c_werror_flag"
    7664                          || test ! -s conftest.err'
     7649         { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
    76657650  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    76667651  (eval $ac_try) 2>&5
     
    77307715  echo "$as_me:$LINENO: \$? = $ac_status" >&5
    77317716  (exit $ac_status); } &&
    7732          { ac_try='test -z "$ac_c_werror_flag"
    7733                          || test ! -s conftest.err'
     7717         { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
    77347718  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    77357719  (eval $ac_try) 2>&5
     
    77917775  echo "$as_me:$LINENO: \$? = $ac_status" >&5
    77927776  (exit $ac_status); } &&
    7793          { ac_try='test -z "$ac_c_werror_flag"
    7794                          || test ! -s conftest.err'
     7777         { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
    77957778  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    77967779  (eval $ac_try) 2>&5
     
    78697852  echo "$as_me:$LINENO: \$? = $ac_status" >&5
    78707853  (exit $ac_status); } &&
    7871          { ac_try='test -z "$ac_c_werror_flag"
    7872                          || test ! -s conftest.err'
     7854         { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
    78737855  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    78747856  (eval $ac_try) 2>&5
     
    79407922  echo "$as_me:$LINENO: \$? = $ac_status" >&5
    79417923  (exit $ac_status); } &&
    7942          { ac_try='test -z "$ac_c_werror_flag"
    7943                          || test ! -s conftest.err'
     7924         { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
    79447925  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    79457926  (eval $ac_try) 2>&5
     
    80177998  echo "$as_me:$LINENO: \$? = $ac_status" >&5
    80187999  (exit $ac_status); } &&
    8019          { ac_try='test -z "$ac_c_werror_flag"
    8020                          || test ! -s conftest.err'
     8000         { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
    80218001  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    80228002  (eval $ac_try) 2>&5
     
    80728052  echo "$as_me:$LINENO: \$? = $ac_status" >&5
    80738053  (exit $ac_status); } &&
    8074          { ac_try='test -z "$ac_c_werror_flag"
    8075                          || test ! -s conftest.err'
     8054         { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
    80768055  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    80778056  (eval $ac_try) 2>&5
     
    81248103        cat >conftest.$ac_ext <<_ACEOF
    81258104
    8126 #if !defined _WIN32 && !defined __WIN32__ && !defined __MSDOS__ && !defined __EMX__
     8105#if !defined _WIN32 && !defined __WIN32__ && !defined __MSDOS__ && !defined __EMX__ && !defined __MSYS__
    81278106neither MSDOS nor Windows nor OS2
    81288107#endif
     
    81388117  echo "$as_me:$LINENO: \$? = $ac_status" >&5
    81398118  (exit $ac_status); } &&
    8140          { ac_try='test -z "$ac_c_werror_flag"
    8141                          || test ! -s conftest.err'
     8119         { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
    81428120  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    81438121  (eval $ac_try) 2>&5
     
    82548232
    82558233
     8234
     8235
     8236
     8237
     8238
     8239
    82568240for ac_func in memcpy memmove strchr strdup mkstemp mktemp fdopen \
    8257                 bsd_signal dup2 getcwd sigsetmask sigaction getgroups \
    8258                 seteuid setegid setlinebuf setreuid setregid setvbuf pipe \
    8259                 strerror strsignal
     8241                bsd_signal dup2 getcwd realpath sigsetmask sigaction \
     8242                getgroups seteuid setegid setlinebuf setreuid setregid \
     8243                getrlimit setrlimit setvbuf pipe strerror strsignal \
     8244                lstat readlink atexit
    82608245do
    82618246as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
     
    83258310  echo "$as_me:$LINENO: \$? = $ac_status" >&5
    83268311  (exit $ac_status); } &&
    8327          { ac_try='test -z "$ac_c_werror_flag"
    8328                          || test ! -s conftest.err'
     8312         { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
    83298313  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    83308314  (eval $ac_try) 2>&5
     
    83928376  echo "$as_me:$LINENO: \$? = $ac_status" >&5
    83938377  (exit $ac_status); } &&
    8394          { ac_try='test -z "$ac_c_werror_flag"
    8395                          || test ! -s conftest.err'
     8378         { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
    83968379  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    83978380  (eval $ac_try) 2>&5
     
    84328415  echo "$as_me:$LINENO: \$? = $ac_status" >&5
    84338416  (exit $ac_status); } &&
    8434          { ac_try='test -z "$ac_c_werror_flag"
    8435                          || test ! -s conftest.err'
     8417         { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
    84368418  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    84378419  (eval $ac_try) 2>&5
     
    86138595  echo "$as_me:$LINENO: \$? = $ac_status" >&5
    86148596  (exit $ac_status); } &&
    8615          { ac_try='test -z "$ac_c_werror_flag"
    8616                          || test ! -s conftest.err'
     8597         { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
    86178598  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    86188599  (eval $ac_try) 2>&5
     
    86958676  echo "$as_me:$LINENO: \$? = $ac_status" >&5
    86968677  (exit $ac_status); } &&
    8697          { ac_try='test -z "$ac_c_werror_flag"
    8698                          || test ! -s conftest.err'
     8678         { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
    86998679  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    87008680  (eval $ac_try) 2>&5
     
    88378817  echo "$as_me:$LINENO: \$? = $ac_status" >&5
    88388818  (exit $ac_status); } &&
    8839          { ac_try='test -z "$ac_c_werror_flag"
    8840                          || test ! -s conftest.err'
     8819         { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
    88418820  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    88428821  (eval $ac_try) 2>&5
     
    89768955  echo "$as_me:$LINENO: \$? = $ac_status" >&5
    89778956  (exit $ac_status); } &&
    8978          { ac_try='test -z "$ac_c_werror_flag"
    8979                          || test ! -s conftest.err'
     8957         { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
    89808958  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    89818959  (eval $ac_try) 2>&5
     
    91629140  echo "$as_me:$LINENO: \$? = $ac_status" >&5
    91639141  (exit $ac_status); } &&
    9164          { ac_try='test -z "$ac_c_werror_flag"
    9165                          || test ! -s conftest.err'
     9142         { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
    91669143  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    91679144  (eval $ac_try) 2>&5
     
    92059182else
    92069183  cat >conftest.$ac_ext <<_ACEOF
    9207 /* By Ruediger Kuhlmann. */
    9208       #include <sys/types.h>
    9209       #if HAVE_UNISTD_H
    9210       # include <unistd.h>
    9211       #endif
    9212       /* Some systems only have a dummy stub for fork() */
    9213       int main ()
    9214       {
    9215         if (fork() < 0)
    9216           exit (1);
    9217         exit (0);
    9218       }
     9184/* confdefs.h.  */
     9185_ACEOF
     9186cat confdefs.h >>conftest.$ac_ext
     9187cat >>conftest.$ac_ext <<_ACEOF
     9188/* end confdefs.h.  */
     9189$ac_includes_default
     9190int
     9191main ()
     9192{
     9193
     9194          /* By Ruediger Kuhlmann. */
     9195          if (fork() < 0)
     9196            exit (1);
     9197          exit (0);
     9198
     9199  ;
     9200  return 0;
     9201}
    92199202_ACEOF
    92209203rm -f conftest$ac_exeext
     
    94959478  echo "$as_me:$LINENO: \$? = $ac_status" >&5
    94969479  (exit $ac_status); } &&
    9497          { ac_try='test -z "$ac_c_werror_flag"
    9498                          || test ! -s conftest.err'
     9480         { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
    94999481  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    95009482  (eval $ac_try) 2>&5
     
    95909572  echo "$as_me:$LINENO: \$? = $ac_status" >&5
    95919573  (exit $ac_status); } &&
    9592          { ac_try='test -z "$ac_c_werror_flag"
    9593                          || test ! -s conftest.err'
     9574         { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
    95949575  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    95959576  (eval $ac_try) 2>&5
     
    97659746  echo "$as_me:$LINENO: \$? = $ac_status" >&5
    97669747  (exit $ac_status); } &&
    9767          { ac_try='test -z "$ac_c_werror_flag"
    9768                          || test ! -s conftest.err'
     9748         { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
    97699749  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    97709750  (eval $ac_try) 2>&5
     
    98679847  echo "$as_me:$LINENO: \$? = $ac_status" >&5
    98689848  (exit $ac_status); } &&
    9869          { ac_try='test -z "$ac_c_werror_flag"
    9870                          || test ! -s conftest.err'
     9849         { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
    98719850  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    98729851  (eval $ac_try) 2>&5
     
    99419920  echo "$as_me:$LINENO: \$? = $ac_status" >&5
    99429921  (exit $ac_status); } &&
    9943          { ac_try='test -z "$ac_c_werror_flag"
    9944                          || test ! -s conftest.err'
     9922         { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
    99459923  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    99469924  (eval $ac_try) 2>&5
     
    100219999  echo "$as_me:$LINENO: \$? = $ac_status" >&5
    1002210000  (exit $ac_status); } &&
    10023          { ac_try='test -z "$ac_c_werror_flag"
    10024                          || test ! -s conftest.err'
     10001         { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
    1002510002  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    1002610003  (eval $ac_try) 2>&5
     
    1009110068  echo "$as_me:$LINENO: \$? = $ac_status" >&5
    1009210069  (exit $ac_status); } &&
    10093          { ac_try='test -z "$ac_c_werror_flag"
    10094                          || test ! -s conftest.err'
     10070         { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
    1009510071  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    1009610072  (eval $ac_try) 2>&5
     
    1016010136  echo "$as_me:$LINENO: \$? = $ac_status" >&5
    1016110137  (exit $ac_status); } &&
    10162          { ac_try='test -z "$ac_c_werror_flag"
    10163                          || test ! -s conftest.err'
     10138         { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
    1016410139  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    1016510140  (eval $ac_try) 2>&5
     
    1023510210  echo "$as_me:$LINENO: \$? = $ac_status" >&5
    1023610211  (exit $ac_status); } &&
    10237          { ac_try='test -z "$ac_c_werror_flag"
    10238                          || test ! -s conftest.err'
     10212         { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
    1023910213  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    1024010214  (eval $ac_try) 2>&5
     
    1034010314  echo "$as_me:$LINENO: \$? = $ac_status" >&5
    1034110315  (exit $ac_status); } &&
    10342          { ac_try='test -z "$ac_c_werror_flag"
    10343                          || test ! -s conftest.err'
     10316         { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
    1034410317  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    1034510318  (eval $ac_try) 2>&5
     
    1041610389  echo "$as_me:$LINENO: \$? = $ac_status" >&5
    1041710390  (exit $ac_status); } &&
    10418          { ac_try='test -z "$ac_c_werror_flag"
    10419                          || test ! -s conftest.err'
     10391         { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
    1042010392  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    1042110393  (eval $ac_try) 2>&5
     
    1056910541  echo "$as_me:$LINENO: \$? = $ac_status" >&5
    1057010542  (exit $ac_status); } &&
    10571          { ac_try='test -z "$ac_c_werror_flag"
    10572                          || test ! -s conftest.err'
     10543         { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
    1057310544  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    1057410545  (eval $ac_try) 2>&5
     
    1063810609  echo "$as_me:$LINENO: \$? = $ac_status" >&5
    1063910610  (exit $ac_status); } &&
    10640          { ac_try='test -z "$ac_c_werror_flag"
    10641                          || test ! -s conftest.err'
     10611         { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
    1064210612  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    1064310613  (eval $ac_try) 2>&5
     
    1081610786  echo "$as_me:$LINENO: \$? = $ac_status" >&5
    1081710787  (exit $ac_status); } &&
    10818          { ac_try='test -z "$ac_c_werror_flag"
    10819                          || test ! -s conftest.err'
     10788         { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
    1082010789  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    1082110790  (eval $ac_try) 2>&5
     
    1089310862  echo "$as_me:$LINENO: \$? = $ac_status" >&5
    1089410863  (exit $ac_status); } &&
    10895          { ac_try='test -z "$ac_c_werror_flag"
    10896                          || test ! -s conftest.err'
     10864         { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
    1089710865  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    1089810866  (eval $ac_try) 2>&5
     
    1104811016  echo "$as_me:$LINENO: \$? = $ac_status" >&5
    1104911017  (exit $ac_status); } &&
    11050          { ac_try='test -z "$ac_c_werror_flag"
    11051                          || test ! -s conftest.err'
     11018         { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
    1105211019  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    1105311020  (eval $ac_try) 2>&5
     
    1120011167  echo "$as_me:$LINENO: \$? = $ac_status" >&5
    1120111168  (exit $ac_status); } &&
    11202          { ac_try='test -z "$ac_c_werror_flag"
    11203                          || test ! -s conftest.err'
     11169         { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
    1120411170  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    1120511171  (eval $ac_try) 2>&5
     
    1135211318  echo "$as_me:$LINENO: \$? = $ac_status" >&5
    1135311319  (exit $ac_status); } &&
    11354          { ac_try='test -z "$ac_c_werror_flag"
    11355                          || test ! -s conftest.err'
     11320         { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
    1135611321  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    1135711322  (eval $ac_try) 2>&5
     
    1149511460  echo "$as_me:$LINENO: \$? = $ac_status" >&5
    1149611461  (exit $ac_status); } &&
    11497          { ac_try='test -z "$ac_c_werror_flag"
    11498                          || test ! -s conftest.err'
     11462         { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
    1149911463  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    1150011464  (eval $ac_try) 2>&5
     
    1154011504  echo "$as_me:$LINENO: \$? = $ac_status" >&5
    1154111505  (exit $ac_status); } &&
    11542          { ac_try='test -z "$ac_c_werror_flag"
    11543                          || test ! -s conftest.err'
     11506         { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
    1154411507  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    1154511508  (eval $ac_try) 2>&5
     
    1168611649  echo "$as_me:$LINENO: \$? = $ac_status" >&5
    1168711650  (exit $ac_status); } &&
    11688          { ac_try='test -z "$ac_c_werror_flag"
    11689                          || test ! -s conftest.err'
     11651         { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
    1169011652  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    1169111653  (eval $ac_try) 2>&5
     
    1172811690/* end confdefs.h.  */
    1172911691$ac_includes_default
     11692#include <signal.h>
     11693/* NetBSD declares sys_siglist in unistd.h.  */
     11694#if HAVE_UNISTD_H
     11695# include <unistd.h>
     11696#endif
     11697
     11698
    1173011699int
    1173111700main ()
     
    1174811717  echo "$as_me:$LINENO: \$? = $ac_status" >&5
    1174911718  (exit $ac_status); } &&
    11750          { ac_try='test -z "$ac_c_werror_flag"
    11751                          || test ! -s conftest.err'
     11719         { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
    1175211720  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    1175311721  (eval $ac_try) 2>&5
     
    1178211750  cat >>confdefs.h <<_ACEOF
    1178311751#define HAVE_DECL_SYS_SIGLIST 0
     11752_ACEOF
     11753
     11754
     11755fi
     11756echo "$as_me:$LINENO: checking whether _sys_siglist is declared" >&5
     11757echo $ECHO_N "checking whether _sys_siglist is declared... $ECHO_C" >&6
     11758if test "${ac_cv_have_decl__sys_siglist+set}" = set; then
     11759  echo $ECHO_N "(cached) $ECHO_C" >&6
     11760else
     11761  cat >conftest.$ac_ext <<_ACEOF
     11762/* confdefs.h.  */
     11763_ACEOF
     11764cat confdefs.h >>conftest.$ac_ext
     11765cat >>conftest.$ac_ext <<_ACEOF
     11766/* end confdefs.h.  */
     11767$ac_includes_default
     11768#include <signal.h>
     11769/* NetBSD declares sys_siglist in unistd.h.  */
     11770#if HAVE_UNISTD_H
     11771# include <unistd.h>
     11772#endif
     11773
     11774
     11775int
     11776main ()
     11777{
     11778#ifndef _sys_siglist
     11779  char *p = (char *) _sys_siglist;
     11780#endif
     11781
     11782  ;
     11783  return 0;
     11784}
     11785_ACEOF
     11786rm -f conftest.$ac_objext
     11787if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
     11788  (eval $ac_compile) 2>conftest.er1
     11789  ac_status=$?
     11790  grep -v '^ *+' conftest.er1 >conftest.err
     11791  rm -f conftest.er1
     11792  cat conftest.err >&5
     11793  echo "$as_me:$LINENO: \$? = $ac_status" >&5
     11794  (exit $ac_status); } &&
     11795         { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
     11796  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
     11797  (eval $ac_try) 2>&5
     11798  ac_status=$?
     11799  echo "$as_me:$LINENO: \$? = $ac_status" >&5
     11800  (exit $ac_status); }; } &&
     11801         { ac_try='test -s conftest.$ac_objext'
     11802  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
     11803  (eval $ac_try) 2>&5
     11804  ac_status=$?
     11805  echo "$as_me:$LINENO: \$? = $ac_status" >&5
     11806  (exit $ac_status); }; }; then
     11807  ac_cv_have_decl__sys_siglist=yes
     11808else
     11809  echo "$as_me: failed program was:" >&5
     11810sed 's/^/| /' conftest.$ac_ext >&5
     11811
     11812ac_cv_have_decl__sys_siglist=no
     11813fi
     11814rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
     11815fi
     11816echo "$as_me:$LINENO: result: $ac_cv_have_decl__sys_siglist" >&5
     11817echo "${ECHO_T}$ac_cv_have_decl__sys_siglist" >&6
     11818if test $ac_cv_have_decl__sys_siglist = yes; then
     11819
     11820cat >>confdefs.h <<_ACEOF
     11821#define HAVE_DECL__SYS_SIGLIST 1
     11822_ACEOF
     11823
     11824
     11825else
     11826  cat >>confdefs.h <<_ACEOF
     11827#define HAVE_DECL__SYS_SIGLIST 0
     11828_ACEOF
     11829
     11830
     11831fi
     11832echo "$as_me:$LINENO: checking whether __sys_siglist is declared" >&5
     11833echo $ECHO_N "checking whether __sys_siglist is declared... $ECHO_C" >&6
     11834if test "${ac_cv_have_decl___sys_siglist+set}" = set; then
     11835  echo $ECHO_N "(cached) $ECHO_C" >&6
     11836else
     11837  cat >conftest.$ac_ext <<_ACEOF
     11838/* confdefs.h.  */
     11839_ACEOF
     11840cat confdefs.h >>conftest.$ac_ext
     11841cat >>conftest.$ac_ext <<_ACEOF
     11842/* end confdefs.h.  */
     11843$ac_includes_default
     11844#include <signal.h>
     11845/* NetBSD declares sys_siglist in unistd.h.  */
     11846#if HAVE_UNISTD_H
     11847# include <unistd.h>
     11848#endif
     11849
     11850
     11851int
     11852main ()
     11853{
     11854#ifndef __sys_siglist
     11855  char *p = (char *) __sys_siglist;
     11856#endif
     11857
     11858  ;
     11859  return 0;
     11860}
     11861_ACEOF
     11862rm -f conftest.$ac_objext
     11863if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
     11864  (eval $ac_compile) 2>conftest.er1
     11865  ac_status=$?
     11866  grep -v '^ *+' conftest.er1 >conftest.err
     11867  rm -f conftest.er1
     11868  cat conftest.err >&5
     11869  echo "$as_me:$LINENO: \$? = $ac_status" >&5
     11870  (exit $ac_status); } &&
     11871         { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
     11872  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
     11873  (eval $ac_try) 2>&5
     11874  ac_status=$?
     11875  echo "$as_me:$LINENO: \$? = $ac_status" >&5
     11876  (exit $ac_status); }; } &&
     11877         { ac_try='test -s conftest.$ac_objext'
     11878  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
     11879  (eval $ac_try) 2>&5
     11880  ac_status=$?
     11881  echo "$as_me:$LINENO: \$? = $ac_status" >&5
     11882  (exit $ac_status); }; }; then
     11883  ac_cv_have_decl___sys_siglist=yes
     11884else
     11885  echo "$as_me: failed program was:" >&5
     11886sed 's/^/| /' conftest.$ac_ext >&5
     11887
     11888ac_cv_have_decl___sys_siglist=no
     11889fi
     11890rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
     11891fi
     11892echo "$as_me:$LINENO: result: $ac_cv_have_decl___sys_siglist" >&5
     11893echo "${ECHO_T}$ac_cv_have_decl___sys_siglist" >&6
     11894if test $ac_cv_have_decl___sys_siglist = yes; then
     11895
     11896cat >>confdefs.h <<_ACEOF
     11897#define HAVE_DECL___SYS_SIGLIST 1
     11898_ACEOF
     11899
     11900
     11901else
     11902  cat >>confdefs.h <<_ACEOF
     11903#define HAVE_DECL___SYS_SIGLIST 0
    1178411904_ACEOF
    1178511905
     
    1182511945  echo "$as_me:$LINENO: \$? = $ac_status" >&5
    1182611946  (exit $ac_status); } &&
    11827          { ac_try='test -z "$ac_c_werror_flag"
    11828                          || test ! -s conftest.err'
     11947         { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
    1182911948  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    1183011949  (eval $ac_try) 2>&5
     
    1201112130  echo "$as_me:$LINENO: \$? = $ac_status" >&5
    1201212131  (exit $ac_status); } &&
    12013          { ac_try='test -z "$ac_c_werror_flag"
    12014                          || test ! -s conftest.err'
     12132         { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
    1201512133  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    1201612134  (eval $ac_try) 2>&5
     
    1208912207  echo "$as_me:$LINENO: \$? = $ac_status" >&5
    1209012208  (exit $ac_status); } &&
    12091          { ac_try='test -z "$ac_c_werror_flag"
    12092                          || test ! -s conftest.err'
     12209         { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
    1209312210  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    1209412211  (eval $ac_try) 2>&5
     
    1223112348  echo "$as_me:$LINENO: \$? = $ac_status" >&5
    1223212349  (exit $ac_status); } &&
    12233          { ac_try='test -z "$ac_c_werror_flag"
    12234                          || test ! -s conftest.err'
     12350         { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
    1223512351  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    1223612352  (eval $ac_try) 2>&5
     
    1230212418  echo "$as_me:$LINENO: \$? = $ac_status" >&5
    1230312419  (exit $ac_status); } &&
    12304          { ac_try='test -z "$ac_c_werror_flag"
    12305                          || test ! -s conftest.err'
     12420         { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
    1230612421  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    1230712422  (eval $ac_try) 2>&5
     
    1238412499  echo "$as_me:$LINENO: \$? = $ac_status" >&5
    1238512500  (exit $ac_status); } &&
    12386          { ac_try='test -z "$ac_c_werror_flag"
    12387                          || test ! -s conftest.err'
     12501         { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
    1238812502  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    1238912503  (eval $ac_try) 2>&5
     
    1247112585  echo "$as_me:$LINENO: \$? = $ac_status" >&5
    1247212586  (exit $ac_status); } &&
    12473          { ac_try='test -z "$ac_c_werror_flag"
    12474                          || test ! -s conftest.err'
     12587         { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
    1247512588  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    1247612589  (eval $ac_try) 2>&5
     
    1257212685  echo "$as_me:$LINENO: \$? = $ac_status" >&5
    1257312686  (exit $ac_status); } &&
    12574          { ac_try='test -z "$ac_c_werror_flag"
    12575                          || test ! -s conftest.err'
     12687         { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
    1257612688  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    1257712689  (eval $ac_try) 2>&5
     
    1264312755  echo "$as_me:$LINENO: \$? = $ac_status" >&5
    1264412756  (exit $ac_status); } &&
    12645          { ac_try='test -z "$ac_c_werror_flag"
    12646                          || test ! -s conftest.err'
     12757         { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
    1264712758  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    1264812759  (eval $ac_try) 2>&5
     
    1272512836  echo "$as_me:$LINENO: \$? = $ac_status" >&5
    1272612837  (exit $ac_status); } &&
    12727          { ac_try='test -z "$ac_c_werror_flag"
    12728                          || test ! -s conftest.err'
     12838         { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
    1272912839  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    1273012840  (eval $ac_try) 2>&5
     
    1284812958  echo "$as_me:$LINENO: \$? = $ac_status" >&5
    1284912959  (exit $ac_status); } &&
    12850          { ac_try='test -z "$ac_c_werror_flag"
    12851                          || test ! -s conftest.err'
     12960         { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
    1285212961  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    1285312962  (eval $ac_try) 2>&5
     
    1291913028  echo "$as_me:$LINENO: \$? = $ac_status" >&5
    1292013029  (exit $ac_status); } &&
    12921          { ac_try='test -z "$ac_c_werror_flag"
    12922                          || test ! -s conftest.err'
     13030         { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
    1292313031  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    1292413032  (eval $ac_try) 2>&5
     
    1303813146  echo "$as_me:$LINENO: \$? = $ac_status" >&5
    1303913147  (exit $ac_status); } &&
    13040          { ac_try='test -z "$ac_c_werror_flag"
    13041                          || test ! -s conftest.err'
     13148         { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
    1304213149  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    1304313150  (eval $ac_try) 2>&5
     
    1310913216  echo "$as_me:$LINENO: \$? = $ac_status" >&5
    1311013217  (exit $ac_status); } &&
    13111          { ac_try='test -z "$ac_c_werror_flag"
    13112                          || test ! -s conftest.err'
     13218         { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
    1311313219  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    1311413220  (eval $ac_try) 2>&5
     
    1319413300  echo "$as_me:$LINENO: \$? = $ac_status" >&5
    1319513301  (exit $ac_status); } &&
    13196          { ac_try='test -z "$ac_c_werror_flag"
    13197                          || test ! -s conftest.err'
     13302         { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
    1319813303  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    1319913304  (eval $ac_try) 2>&5
     
    1332613431
    1332713432
     13433# See if the user asked to handle case insensitive file systems.
     13434
     13435
     13436
     13437# Check whether --enable-case-insensitive-file-system or --disable-case-insensitive-file-system was given.
     13438if test "${enable_case_insensitive_file_system+set}" = set; then
     13439  enableval="$enable_case_insensitive_file_system"
     13440  case_insensitive_fs="yes" cat >>confdefs.h <<\_ACEOF
     13441#define HAVE_CASE_INSENSITIVE_FS 1
     13442_ACEOF
     13443
     13444else
     13445  case_insensitive_fs="no"
     13446fi;
     13447
    1332813448# See if we can handle the job server feature, and if the user wants it.
    1332913449
     
    1337113491  echo "$as_me:$LINENO: \$? = $ac_status" >&5
    1337213492  (exit $ac_status); } &&
    13373          { ac_try='test -z "$ac_c_werror_flag"
    13374                          || test ! -s conftest.err'
     13493         { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
    1337513494  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    1337613495  (eval $ac_try) 2>&5
     
    1339613515echo "${ECHO_T}$make_cv_sa_restart" >&6
    1339713516
    13398 # enable make_cv_sa_restart for OS/2
     13517if test "$make_cv_sa_restart" != no; then
     13518
     13519cat >>confdefs.h <<\_ACEOF
     13520#define HAVE_SA_RESTART 1
     13521_ACEOF
     13522
     13523fi
     13524
     13525# enable make_cv_sa_restart for OS/2 so that the jobserver will be enabled,
     13526# but do it after HAVE_SA_RESTART has been defined.
    1339913527case "$host_os" in
    1340013528  os2*) make_cv_sa_restart=yes ;;
    1340113529esac
    1340213530
    13403 if test "$make_cv_sa_restart" != no; then
    13404 
    13405 cat >>confdefs.h <<\_ACEOF
    13406 #define HAVE_SA_RESTART 1
    13407 _ACEOF
    13408 
    13409 fi
    13410 
    1341113531case "$ac_cv_func_pipe/$ac_cv_func_sigaction/$make_cv_sa_restart/$has_wait_nohang/$make_cv_job_server" in
    1341213532  yes/yes/yes/yes/yes)
     
    1341413534cat >>confdefs.h <<\_ACEOF
    1341513535#define MAKE_JOBSERVER 1
     13536_ACEOF
     13537;;
     13538esac
     13539
     13540# if we have both lstat() and readlink() then we can support symlink
     13541# timechecks.
     13542case "$ac_cv_func_lstat/$ac_cv_func_readlink" in
     13543  yes/yes)
     13544
     13545cat >>confdefs.h <<\_ACEOF
     13546#define MAKE_SYMLINKS 1
    1341613547_ACEOF
    1341713548;;
     
    1353513666MAKE_HOST="$host"
    1353613667
     13668
     13669w32_target_env=no
     13670
     13671
     13672if false; then
     13673  WINDOWSENV_TRUE=
     13674  WINDOWSENV_FALSE='#'
     13675else
     13676  WINDOWSENV_TRUE='#'
     13677  WINDOWSENV_FALSE=
     13678fi
     13679
     13680
     13681case "$host" in
     13682  *-*-mingw32)
     13683
     13684
     13685if true; then
     13686  WINDOWSENV_TRUE=
     13687  WINDOWSENV_FALSE='#'
     13688else
     13689  WINDOWSENV_TRUE='#'
     13690  WINDOWSENV_FALSE=
     13691fi
     13692
     13693    w32_target_env=yes
     13694
     13695cat >>confdefs.h <<\_ACEOF
     13696#define WINDOWS32 1
     13697_ACEOF
     13698
     13699
     13700cat >>confdefs.h <<\_ACEOF
     13701#define HAVE_DOS_PATHS 1
     13702_ACEOF
     13703
     13704    ;;
     13705esac
    1353713706
    1353813707# Include the Maintainer's Makefile section, if it's here.
     
    1361813787
    1361913788# Specify what files are to be created.
    13620 # We only generate the build.sh if we have a build.sh.in; we won't have
    13621 # one before we've created a distribution.
    13622 
    13623                                                   ac_config_files="$ac_config_files Makefile glob/Makefile po/Makefile.in config/Makefile doc/Makefile"
    13624 
    13625 
    13626 if test -f $srcdir/build.sh.in; then
    13627             ac_config_files="$ac_config_files build.sh"
    13628 
    13629 fi
     13789                                                            ac_config_files="$ac_config_files Makefile glob/Makefile po/Makefile.in config/Makefile doc/Makefile w32/Makefile"
    1363013790
    1363113791
     
    1374813908Usually this means the macro was only invoked conditionally." >&5
    1374913909echo "$as_me: error: conditional \"USE_LOCAL_GLOB\" was never defined.
     13910Usually this means the macro was only invoked conditionally." >&2;}
     13911   { (exit 1); exit 1; }; }
     13912fi
     13913if test -z "${WINDOWSENV_TRUE}" && test -z "${WINDOWSENV_FALSE}"; then
     13914  { { echo "$as_me:$LINENO: error: conditional \"WINDOWSENV\" was never defined.
     13915Usually this means the macro was only invoked conditionally." >&5
     13916echo "$as_me: error: conditional \"WINDOWSENV\" was never defined.
     13917Usually this means the macro was only invoked conditionally." >&2;}
     13918   { (exit 1); exit 1; }; }
     13919fi
     13920if test -z "${WINDOWSENV_TRUE}" && test -z "${WINDOWSENV_FALSE}"; then
     13921  { { echo "$as_me:$LINENO: error: conditional \"WINDOWSENV\" was never defined.
     13922Usually this means the macro was only invoked conditionally." >&5
     13923echo "$as_me: error: conditional \"WINDOWSENV\" was never defined.
    1375013924Usually this means the macro was only invoked conditionally." >&2;}
    1375113925   { (exit 1); exit 1; }; }
     
    1402214196cat >&5 <<_CSEOF
    1402314197
    14024 This file was extended by GNU make $as_me 3.81beta1, which was
     14198This file was extended by GNU make $as_me 3.81, which was
    1402514199generated by GNU Autoconf 2.59.  Invocation command line was
    1402614200
     
    1408514259cat >>$CONFIG_STATUS <<_ACEOF
    1408614260ac_cs_version="\\
    14087 GNU make config.status 3.81beta1
     14261GNU make config.status 3.81
    1408814262configured by $0, generated by GNU Autoconf 2.59,
    1408914263  with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
     
    1420714381  "config/Makefile" ) CONFIG_FILES="$CONFIG_FILES config/Makefile" ;;
    1420814382  "doc/Makefile" ) CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;;
    14209   "build.sh" ) CONFIG_FILES="$CONFIG_FILES build.sh" ;;
     14383  "w32/Makefile" ) CONFIG_FILES="$CONFIG_FILES w32/Makefile" ;;
    1421014384  "depfiles" ) CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
    1421114385  "default-1" ) CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;;
     
    1430714481s,@AUTOHEADER@,$AUTOHEADER,;t t
    1430814482s,@MAKEINFO@,$MAKEINFO,;t t
    14309 s,@AMTAR@,$AMTAR,;t t
    1431014483s,@install_sh@,$install_sh,;t t
    1431114484s,@STRIP@,$STRIP,;t t
     
    1431614489s,@SET_MAKE@,$SET_MAKE,;t t
    1431714490s,@am__leading_dot@,$am__leading_dot,;t t
     14491s,@AMTAR@,$AMTAR,;t t
     14492s,@am__tar@,$am__tar,;t t
     14493s,@am__untar@,$am__untar,;t t
    1431814494s,@CC@,$CC,;t t
    1431914495s,@CFLAGS@,$CFLAGS,;t t
     
    1437314549s,@USE_LOCAL_GLOB_FALSE@,$USE_LOCAL_GLOB_FALSE,;t t
    1437414550s,@MAKE_HOST@,$MAKE_HOST,;t t
     14551s,@WINDOWSENV_TRUE@,$WINDOWSENV_TRUE,;t t
     14552s,@WINDOWSENV_FALSE@,$WINDOWSENV_FALSE,;t t
    1437514553s,@LTLIBOBJS@,$LTLIBOBJS,;t t
    1437614554/@MAINT_MAKEFILE@/r $MAINT_MAKEFILE
     
    1454214720  esac
    1454314721
    14544   if test x"$ac_file" != x-; then
    14545     { echo "$as_me:$LINENO: creating $ac_file" >&5
    14546 echo "$as_me: creating $ac_file" >&6;}
    14547     rm -f "$ac_file"
    14548   fi
    1454914722  # Let's still pretend it is `configure' which instantiates (i.e., don't
    1455014723  # use $as_me), people would be surprised to read:
     
    1458514758      esac
    1458614759    done` || { (exit 1); exit 1; }
     14760
     14761  if test x"$ac_file" != x-; then
     14762    { echo "$as_me:$LINENO: creating $ac_file" >&5
     14763echo "$as_me: creating $ac_file" >&6;}
     14764    rm -f "$ac_file"
     14765  fi
    1458714766_ACEOF
    1458814767cat >>$CONFIG_STATUS <<_ACEOF
     
    1499815177    continue
    1499915178  fi
    15000   grep '^DEP_FILES *= *[^ #]' < "$mf" > /dev/null || continue
    15001   # Extract the definition of DEP_FILES from the Makefile without
    15002   # running `make'.
    15003   DEPDIR=`sed -n -e '/^DEPDIR = / s///p' < "$mf"`
     15179  # Extract the definition of DEPDIR, am__include, and am__quote
     15180  # from the Makefile without running `make'.
     15181  DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
    1500415182  test -z "$DEPDIR" && continue
     15183  am__include=`sed -n 's/^am__include = //p' < "$mf"`
     15184  test -z "am__include" && continue
     15185  am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
    1500515186  # When using ansi2knr, U may be empty or an underscore; expand it
    15006   U=`sed -n -e '/^U = / s///p' < "$mf"`
    15007   test -d "$dirpart/$DEPDIR" || mkdir "$dirpart/$DEPDIR"
    15008   # We invoke sed twice because it is the simplest approach to
    15009   # changing $(DEPDIR) to its actual value in the expansion.
    15010   for file in `sed -n -e '
    15011     /^DEP_FILES = .*\\\\$/ {
    15012       s/^DEP_FILES = //
    15013       :loop
    15014         s/\\\\$//
    15015         p
    15016         n
    15017         /\\\\$/ b loop
    15018       p
    15019     }
    15020     /^DEP_FILES = / s/^DEP_FILES = //p' < "$mf" | \
     15187  U=`sed -n 's/^U = //p' < "$mf"`
     15188  # Find all dependency output files, they are included files with
     15189  # $(DEPDIR) in their names.  We invoke sed twice because it is the
     15190  # simplest approach to changing $(DEPDIR) to its actual value in the
     15191  # expansion.
     15192  for file in `sed -n "
     15193    s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
    1502115194       sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
    1502215195    # Make sure the directory exists.
     
    1520715380
    1520815381
    15209 
     15382# We only generate the build.sh if we have a build.sh.in; we won't have
     15383# one before we've created a distribution.
     15384if test -f "$srcdir/build.sh.in"; then
     15385  ./config.status --file build.sh
     15386  chmod +x build.sh
     15387fi
     15388
  • vendor/gnumake/current/configure.bat

    r54 r501  
    11@echo off
     2rem Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
     3rem 2004, 2005, 2006 Free Software Foundation, Inc.
     4rem This file is part of GNU Make.
     5
     6rem GNU Make is free software; you can redistribute it and/or modify it under
     7rem the terms of the GNU General Public License as published by the Free
     8rem Software Foundation; either version 2, or (at your option) any later
     9rem version.
     10
     11rem GNU Make is distributed in the hope that it will be useful, but WITHOUT
     12rem ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
     13rem FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
     14rem more details.
     15
     16rem You should have received a copy of the GNU General Public License along
     17rem with GNU Make; see the file COPYING.  If not, write to the Free Software
     18rem Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
     19
    220echo Configuring MAKE for DJGPP
    321
  • vendor/gnumake/current/configure.in

    r280 r501  
    11# Process this file with autoconf to produce a configure script.
    2 
    3 AC_INIT([GNU make],[3.81beta3],[[email protected]])
     2#
     3# Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
     4# 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
     5# This file is part of GNU Make.
     6#
     7# GNU Make is free software; you can redistribute it and/or modify it under the
     8# terms of the GNU General Public License as published by the Free Software
     9# Foundation; either version 2, or (at your option) any later version.
     10#
     11# GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     12# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     13# A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     14#
     15# You should have received a copy of the GNU General Public License along with
     16# GNU Make; see the file COPYING.  If not, write to the Free Software
     17# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
     18
     19AC_INIT([GNU make],[3.81],[[email protected]])
    420
    521AC_PREREQ(2.59)
    6 AC_REVISION([[$Id: configure.in,v 1.135 2005/05/10 01:38:18 psmith Exp $]])
     22AC_REVISION([[$Id: configure.in,v 1.142 2006/04/01 06:36:40 psmith Exp $]])
    723
    824# Autoconf setup
     
    1228
    1329# Automake setup
    14 AM_INIT_AUTOMAKE([1.8.2])
     30AM_INIT_AUTOMAKE([1.9])
    1531
    1632# Checks for programs.
     
    138154                getgroups seteuid setegid setlinebuf setreuid setregid \
    139155                getrlimit setrlimit setvbuf pipe strerror strsignal \
    140                 lstat readlink)
     156                lstat readlink atexit)
    141157
    142158AC_FUNC_SETVBUF_REVERSED
     
    168184fi
    169185
    170 AC_CHECK_DECLS([sys_siglist],,,
    171 [#include <signal.h>
     186AC_CHECK_DECLS([sys_siglist, _sys_siglist, __sys_siglist], , ,
     187  [AC_INCLUDES_DEFAULT
     188#include <signal.h>
    172189/* NetBSD declares sys_siglist in unistd.h.  */
    173190#if HAVE_UNISTD_H
     
    434451# We only generate the build.sh if we have a build.sh.in; we won't have
    435452# one before we've created a distribution.
    436 if test -f build.sh.in; then
     453if test -f "$srcdir/build.sh.in"; then
    437454  ./config.status --file build.sh
    438455  chmod +x build.sh
  • vendor/gnumake/current/debug.h

    r54 r501  
    11/* Debugging macros and interface.
    2 Copyright (C) 1999 Free Software Foundation, Inc.
     2Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software
     3Foundation, Inc.
    34This file is part of GNU Make.
    45
    5 GNU Make is free software; you can redistribute it and/or modify
    6 it under the terms of the GNU General Public License as published by
    7 the Free Software Foundation; either version 2, or (at your option)
    8 any later version.
     6GNU Make is free software; you can redistribute it and/or modify it under the
     7terms of the GNU General Public License as published by the Free Software
     8Foundation; either version 2, or (at your option) any later version.
    99
    10 GNU Make is distributed in the hope that it will be useful,
    11 but WITHOUT ANY WARRANTY; without even the implied warranty of
    12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    13 GNU General Public License for more details.
     10GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     11WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     12A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
    1413
    15 You should have received a copy of the GNU General Public License
    16 along with GNU Make; see the file COPYING.  If not, write to
    17 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    18 Boston, MA 02111-1307, USA.  */
    19 
     14You should have received a copy of the GNU General Public License along with
     15GNU Make; see the file COPYING.  If not, write to the Free Software
     16Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
    2017
    2118#define DB_NONE         (0x000)
  • vendor/gnumake/current/default.c

    r280 r501  
    11/* Data base of default implicit rules for GNU Make.
    2 Copyright (C) 1988,89,90,91,92,93,94,95,96 Free Software Foundation, Inc.
     2Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
     31998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software
     4Foundation, Inc.
    35This file is part of GNU Make.
    46
    5 GNU Make is free software; you can redistribute it and/or modify
    6 it under the terms of the GNU General Public License as published by
    7 the Free Software Foundation; either version 2, or (at your option)
    8 any later version.
    9 
    10 GNU Make is distributed in the hope that it will be useful,
    11 but WITHOUT ANY WARRANTY; without even the implied warranty of
    12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    13 GNU General Public License for more details.
    14 
    15 You should have received a copy of the GNU General Public License
    16 along with GNU Make; see the file COPYING.  If not, write to
    17 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    18 Boston, MA 02111-1307, USA.  */
     7GNU Make is free software; you can redistribute it and/or modify it under the
     8terms of the GNU General Public License as published by the Free Software
     9Foundation; either version 2, or (at your option) any later version.
     10
     11GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     12WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     13A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     14
     15You should have received a copy of the GNU General Public License along with
     16GNU Make; see the file COPYING.  If not, write to the Free Software
     17Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
    1918
    2019#include "make.h"
  • vendor/gnumake/current/dep.h

    r280 r501  
    11/* Definitions of dependency data structures for GNU Make.
    2 Copyright (C) 1988, 1989, 1991, 1992, 1993, 1996 Free Software Foundation, Inc.
     2Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
     31998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software
     4Foundation, Inc.
    35This file is part of GNU Make.
    46
    5 GNU Make is free software; you can redistribute it and/or modify
    6 it under the terms of the GNU General Public License as published by
    7 the Free Software Foundation; either version 2, or (at your option)
    8 any later version.
     7GNU Make is free software; you can redistribute it and/or modify it under the
     8terms of the GNU General Public License as published by the Free Software
     9Foundation; either version 2, or (at your option) any later version.
    910
    10 GNU Make is distributed in the hope that it will be useful,
    11 but WITHOUT ANY WARRANTY; without even the implied warranty of
    12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    13 GNU General Public License for more details.
     11GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     12WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     13A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
    1414
    15 You should have received a copy of the GNU General Public License
    16 along with GNU Make; see the file COPYING.  If not, write to
    17 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    18 Boston, MA 02111-1307, USA.  */
     15You should have received a copy of the GNU General Public License along with
     16GNU Make; see the file COPYING.  If not, write to the Free Software
     17Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
    1918
    2019/* Flag bits for the second argument to `read_makefile'.
     
    3029/* Structure representing one dependency of a file.
    3130   Each struct file's `deps' points to a chain of these,
    32    chained through the `next'.
     31   chained through the `next'. `stem' is the stem for this
     32   dep line of static pattern rule or NULL.
    3333
    3434   Note that the first two words of this match a struct nameseq.  */
     
    3838    struct dep *next;
    3939    char *name;
     40    char *stem;
    4041    struct file *file;
    4142    unsigned int changed : 8;
    4243    unsigned int ignore_mtime : 1;
     44    unsigned int staticpattern : 1;
    4345    unsigned int need_2nd_expansion : 1;
    4446  };
     
    7375#endif
    7476
    75 extern struct dep *copy_dep_chain PARAMS ((struct dep *d));
     77extern struct dep *alloc_dep PARAMS ((void));
     78extern void free_dep PARAMS ((struct dep *d));
     79extern struct dep *copy_dep_chain PARAMS ((const struct dep *d));
     80extern void free_dep_chain PARAMS ((struct dep *d));
    7681extern void free_ns_chain PARAMS ((struct nameseq *n));
    7782extern struct dep *read_all_makefiles PARAMS ((char **makefiles));
  • vendor/gnumake/current/dir.c

    r280 r501  
    11/* Directory hashing for GNU Make.
    2 Copyright (C) 1988, 1989, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
    3 2002,2003 Free Software Foundation, Inc.
     2Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
     31998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software
     4Foundation, Inc.
    45This file is part of GNU Make.
    56
    6 GNU Make is free software; you can redistribute it and/or modify
    7 it under the terms of the GNU General Public License as published by
    8 the Free Software Foundation; either version 2, or (at your option)
    9 any later version.
    10 
    11 GNU Make is distributed in the hope that it will be useful,
    12 but WITHOUT ANY WARRANTY; without even the implied warranty of
    13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    14 GNU General Public License for more details.
    15 
    16 You should have received a copy of the GNU General Public License
    17 along with GNU Make; see the file COPYING.  If not, write to
    18 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    19 Boston, MA 02111-1307, USA.  */
     7GNU Make is free software; you can redistribute it and/or modify it under the
     8terms of the GNU General Public License as published by the Free Software
     9Foundation; either version 2, or (at your option) any later version.
     10
     11GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     12WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     13A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     14
     15You should have received a copy of the GNU General Public License along with
     16GNU Make; see the file COPYING.  If not, write to the Free Software
     17Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
    2018
    2119#include "make.h"
     
    157155    {
    158156      unsigned char uc = *name;
     157#ifdef HAVE_CASE_INSENSITIVE_FS
    159158      h = (h << 4) + (isupper (uc) ? tolower (uc) : uc);
     159#else
     160      h = (h << 4) + uc;
     161#endif
    160162      name++;
    161163      g = h & 0xf0000000;
     
    288290}
    289291
     292/* Sometimes it's OK to use subtraction to get this value:
     293     result = X - Y;
     294   But, if we're not sure of the type of X and Y they may be too large for an
     295   int (on a 64-bit system for example).  So, use ?: instead.
     296   See Savannah bug #15534.
     297
     298   NOTE!  This macro has side-effects!
     299*/
     300
     301#define MAKECMP(_x,_y)  ((_x)<(_y)?-1:((_x)==(_y)?0:1))
     302
    290303static int
    291304directory_contents_hash_cmp (const void *xv, const void *yv)
     
    299312  if (result)
    300313    return result;
    301   result = x->ctime - y->ctime;
     314  result = MAKECMP(x->ctime, y->ctime);
    302315  if (result)
    303316    return result;
    304317#else
    305318# ifdef VMS
    306   result = x->ino[0] - y->ino[0];
     319  result = MAKECMP(x->ino[0], y->ino[0]);
    307320  if (result)
    308321    return result;
    309   result = x->ino[1] - y->ino[1];
     322  result = MAKECMP(x->ino[1], y->ino[1]);
    310323  if (result)
    311324    return result;
    312   result = x->ino[2] - y->ino[2];
     325  result = MAKECMP(x->ino[2], y->ino[2]);
    313326  if (result)
    314327    return result;
    315328# else
    316   result = x->ino - y->ino;
     329  result = MAKECMP(x->ino, y->ino);
    317330  if (result)
    318331    return result;
     
    320333#endif /* WINDOWS32 */
    321334
    322   return x->dev - y->dev;
     335  return MAKECMP(x->dev, y->dev);
    323336}
    324337
     
    419432  char  fs_label[BUFSIZ];
    420433  char  fs_type[BUFSIZ];
    421   long  fs_serno;
    422   long  fs_flags;
    423   long  fs_len;
     434  unsigned long  fs_serno;
     435  unsigned long  fs_flags;
     436  unsigned long  fs_len;
    424437#endif
    425438#ifdef VMS
     
    631644       * on directories (ugh!).
    632645       */
    633       if (dir->path_key
    634           && (dir->fs_flags & FS_FAT
    635               || (stat(dir->path_key, &st) == 0
    636                   && st.st_mtime > dir->mtime)))
     646      if (dir->path_key)
    637647        {
    638           /* reset date stamp to show most recent re-process */
    639           dir->mtime = st.st_mtime;
    640 
    641           /* make sure directory can still be opened */
    642           dir->dirstream = opendir(dir->path_key);
    643 
    644           if (dir->dirstream)
    645             rehash = 1;
    646           else
    647             return 0; /* couldn't re-read - fail */
     648          if ((dir->fs_flags & FS_FAT) != 0)
     649            {
     650              dir->mtime = time ((time_t *) 0);
     651              rehash = 1;
     652            }
     653          else if (stat(dir->path_key, &st) == 0 && st.st_mtime > dir->mtime)
     654            {
     655              /* reset date stamp to show most recent re-process.  */
     656              dir->mtime = st.st_mtime;
     657              rehash = 1;
     658            }
     659
     660          /* If it has been already read in, all done.  */
     661          if (!rehash)
     662            return 0;
     663
     664          /* make sure directory can still be opened; if not return.  */
     665          dir->dirstream = opendir(dir->path_key);
     666          if (!dir->dirstream)
     667            return 0;
    648668        }
    649669      else
  • vendor/gnumake/current/doc/Makefile.am

    r53 r501  
    11# -*-Makefile-*-, or close enough
     2# Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software
     3# Foundation, Inc.
     4# This file is part of GNU Make.
     5#
     6# GNU Make is free software; you can redistribute it and/or modify it under the
     7# terms of the GNU General Public License as published by the Free Software
     8# Foundation; either version 2, or (at your option) any later version.
     9#
     10# GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     11# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     12# A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     13#
     14# You should have received a copy of the GNU General Public License along with
     15# GNU Make; see the file COPYING.  If not, write to the Free Software
     16# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
    217
    318TEXI2HTML = texi2html
  • vendor/gnumake/current/doc/Makefile.in

    r152 r501  
    1 # Makefile.in generated by automake 1.8.2 from Makefile.am.
     1# Makefile.in generated by automake 1.9.6 from Makefile.am.
    22# @configure_input@
    33
    44# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
    5 # 2003, 2004  Free Software Foundation, Inc.
     5# 2003, 2004, 2005  Free Software Foundation, Inc.
    66# This Makefile.in is free software; the Free Software Foundation
    77# gives unlimited permission to copy and/or distribute it,
     
    1616
    1717# -*-Makefile-*-, or close enough
     18# Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software
     19# Foundation, Inc.
     20# This file is part of GNU Make.
     21#
     22# GNU Make is free software; you can redistribute it and/or modify it under the
     23# terms of the GNU General Public License as published by the Free Software
     24# Foundation; either version 2, or (at your option) any later version.
     25#
     26# GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     27# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     28# A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     29#
     30# You should have received a copy of the GNU General Public License along with
     31# GNU Make; see the file COPYING.  If not, write to the Free Software
     32# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
    1833srcdir = @srcdir@
    1934top_srcdir = @top_srcdir@
     
    3651PRE_UNINSTALL = :
    3752POST_UNINSTALL = :
     53build_triplet = @build@
    3854host_triplet = @host@
    3955subdir = doc
    4056DIST_COMMON = $(make_TEXINFOS) $(srcdir)/Makefile.am \
    41         $(srcdir)/Makefile.in
     57        $(srcdir)/Makefile.in $(srcdir)/stamp-vti \
     58        $(srcdir)/version.texi
    4259ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
    4360am__aclocal_m4_deps = $(top_srcdir)/config/dospaths.m4 \
     
    6885AM_MAKEINFOHTMLFLAGS = $(AM_MAKEINFOFLAGS)
    6986DVIPS = dvips
    70 am__installdirs = $(DESTDIR)$(infodir)
     87am__installdirs = "$(DESTDIR)$(infodir)"
    7188DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
    7289ACLOCAL = @ACLOCAL@
     
    139156USE_NLS = @USE_NLS@
    140157VERSION = @VERSION@
     158WINDOWSENV_FALSE = @WINDOWSENV_FALSE@
     159WINDOWSENV_TRUE = @WINDOWSENV_TRUE@
    141160XGETTEXT = @XGETTEXT@
    142161ac_ct_CC = @ac_ct_CC@
     
    148167am__leading_dot = @am__leading_dot@
    149168am__quote = @am__quote@
     169am__tar = @am__tar@
     170am__untar = @am__untar@
    150171bindir = @bindir@
    151172build = @build@
     
    216237
    217238.texi.info:
    218         restore=: && \
    219         backupdir="$(am__leading_dot)am$$$$" && \
     239        restore=: && backupdir="$(am__leading_dot)am$$$$" && \
    220240        am__cwd=`pwd` && cd $(srcdir) && \
    221241        rm -rf $$backupdir && mkdir $$backupdir && \
    222         for f in $@ $@-[0-9] $@-[0-9][0-9] $(@:.info=).i[0-9] $(@:.info=).i[0-9][0-9]; do \
    223           if test -f $$f; then \
    224             mv $$f $$backupdir; \
    225             restore=mv; \
    226           fi; \
    227         done; \
     242        if ($(MAKEINFO) --version) >/dev/null 2>&1; then \
     243          for f in $@ $@-[0-9] $@-[0-9][0-9] $(@:.info=).i[0-9] $(@:.info=).i[0-9][0-9]; do \
     244            if test -f $$f; then mv $$f $$backupdir; restore=mv; else :; fi; \
     245          done; \
     246        else :; fi && \
    228247        cd "$$am__cwd"; \
    229248        if $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \
     
    237256          $$restore $$backupdir/* `echo "./$@" | sed 's|[^/]*$$||'`; \
    238257        fi; \
    239         rm -rf $$backupdir; \
    240         exit $$rc
     258        rm -rf $$backupdir; exit $$rc
    241259
    242260.texi.dvi:
     
    251269
    252270.texi.html:
    253         $(MAKEINFOHTML) $(AM_MAKEINFOHTMLFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \
    254          -o $@ $<
    255         if test ! -d $@ && test -d $(@:.html=); then \
    256           mv $(@:.html=) $@; else :; fi
    257 $(srcdir)/make.info: make.texi $(make_TEXINFOS)
    258 make.dvi: make.texi $(make_TEXINFOS)
    259 make.pdf: make.texi $(make_TEXINFOS)
    260 make.html: make.texi $(make_TEXINFOS)
     271        rm -rf $(@:.html=.htp)
     272        if $(MAKEINFOHTML) $(AM_MAKEINFOHTMLFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \
     273         -o $(@:.html=.htp) $<; \
     274        then \
     275          rm -rf $@; \
     276          if test ! -d $(@:.html=.htp) && test -d $(@:.html=); then \
     277            mv $(@:.html=) $@; else mv $(@:.html=.htp) $@; fi; \
     278        else \
     279          if test ! -d $(@:.html=.htp) && test -d $(@:.html=); then \
     280            rm -rf $(@:.html=); else rm -Rf $(@:.html=.htp) $@; fi; \
     281          exit 1; \
     282        fi
     283$(srcdir)/make.info: make.texi $(srcdir)/version.texi $(make_TEXINFOS)
     284make.dvi: make.texi $(srcdir)/version.texi $(make_TEXINFOS)
     285make.pdf: make.texi $(srcdir)/version.texi $(make_TEXINFOS)
     286make.html: make.texi $(srcdir)/version.texi $(make_TEXINFOS)
     287$(srcdir)/version.texi:  $(srcdir)/stamp-vti
     288$(srcdir)/stamp-vti: make.texi $(top_srcdir)/configure
     289        @(dir=.; test -f ./make.texi || dir=$(srcdir); \
     290        set `$(SHELL) $(top_srcdir)/config/mdate-sh $$dir/make.texi`; \
     291        echo "@set UPDATED $$1 $$2 $$3"; \
     292        echo "@set UPDATED-MONTH $$2 $$3"; \
     293        echo "@set EDITION $(VERSION)"; \
     294        echo "@set VERSION $(VERSION)") > vti.tmp
     295        @cmp -s vti.tmp $(srcdir)/version.texi \
     296          || (echo "Updating $(srcdir)/version.texi"; \
     297              cp vti.tmp $(srcdir)/version.texi)
     298        -@rm -f vti.tmp
     299        @cp $(srcdir)/version.texi $@
     300
     301mostlyclean-vti:
     302        -rm -f vti.tmp
     303
     304maintainer-clean-vti:
     305        -rm -f $(srcdir)/stamp-vti $(srcdir)/version.texi
    261306.dvi.ps:
     307        TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
    262308        $(DVIPS) -o $@ $<
    263309
    264310uninstall-info-am:
    265         $(PRE_UNINSTALL)
     311        @$(PRE_UNINSTALL)
    266312        @if (install-info --version && \
    267313             install-info --version 2>&1 | sed 1q | grep -i -v debian) >/dev/null 2>&1; then \
     
    269315          for file in $$list; do \
    270316            relfile=`echo "$$file" | sed 's|^.*/||'`; \
    271             echo " install-info --info-dir=$(DESTDIR)$(infodir) --remove $(DESTDIR)$(infodir)/$$relfile"; \
    272             install-info --info-dir=$(DESTDIR)$(infodir) --remove $(DESTDIR)$(infodir)/$$relfile; \
     317            echo " install-info --info-dir='$(DESTDIR)$(infodir)' --remove '$(DESTDIR)$(infodir)/$$relfile'"; \
     318            install-info --info-dir="$(DESTDIR)$(infodir)" --remove "$(DESTDIR)$(infodir)/$$relfile"; \
    273319          done; \
    274320        else :; fi
     
    278324          relfile=`echo "$$file" | sed 's|^.*/||'`; \
    279325          relfile_i=`echo "$$relfile" | sed 's|\.info$$||;s|$$|.i|'`; \
    280           (if cd $(DESTDIR)$(infodir); then \
    281              echo " rm -f $$relfile $$relfile-[0-9] $$relfile-[0-9][0-9] $$relfile_i[0-9] $$relfile_i[0-9][0-9])"; \
     326          (if cd "$(DESTDIR)$(infodir)"; then \
     327             echo " cd '$(DESTDIR)$(infodir)' && rm -f $$relfile $$relfile-[0-9] $$relfile-[0-9][0-9] $$relfile_i[0-9] $$relfile_i[0-9][0-9]"; \
    282328             rm -f $$relfile $$relfile-[0-9] $$relfile-[0-9][0-9] $$relfile_i[0-9] $$relfile_i[0-9][0-9]; \
    283329           else :; fi); \
     
    351397all-am: Makefile $(INFO_DEPS)
    352398installdirs:
    353         $(mkdir_p) $(DESTDIR)$(infodir)
     399        for dir in "$(DESTDIR)$(infodir)"; do \
     400          test -z "$$dir" || $(mkdir_p) "$$dir"; \
     401        done
    354402install: install-am
    355403install-exec: install-exec-am
     
    372420
    373421distclean-generic:
    374         -rm -f $(CONFIG_CLEAN_FILES)
     422        -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
    375423
    376424maintainer-clean-generic:
     
    403451install-info-am: $(INFO_DEPS)
    404452        @$(NORMAL_INSTALL)
    405         $(mkdir_p) $(DESTDIR)$(infodir)
     453        test -z "$(infodir)" || $(mkdir_p) "$(DESTDIR)$(infodir)"
    406454        @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
    407455        list='$(INFO_DEPS)'; \
     
    416464            if test -f $$ifile; then \
    417465              relfile=`echo "$$ifile" | sed 's|^.*/||'`; \
    418               echo " $(INSTALL_DATA) $$ifile $(DESTDIR)$(infodir)/$$relfile"; \
    419               $(INSTALL_DATA) $$ifile $(DESTDIR)$(infodir)/$$relfile; \
     466              echo " $(INSTALL_DATA) '$$ifile' '$(DESTDIR)$(infodir)/$$relfile'"; \
     467              $(INSTALL_DATA) "$$ifile" "$(DESTDIR)$(infodir)/$$relfile"; \
    420468            else : ; fi; \
    421469          done; \
     
    427475          for file in $$list; do \
    428476            relfile=`echo "$$file" | sed 's|^.*/||'`; \
    429             echo " install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$relfile";\
    430             install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$relfile || :;\
     477            echo " install-info --info-dir='$(DESTDIR)$(infodir)' '$(DESTDIR)$(infodir)/$$relfile'";\
     478            install-info --info-dir="$(DESTDIR)$(infodir)" "$(DESTDIR)$(infodir)/$$relfile" || :;\
    431479          done; \
    432480        else : ; fi
     
    438486        -rm -f Makefile
    439487maintainer-clean-am: distclean-am maintainer-clean-aminfo \
    440         maintainer-clean-generic
     488        maintainer-clean-generic maintainer-clean-vti
    441489
    442490mostlyclean: mostlyclean-am
    443491
    444 mostlyclean-am: mostlyclean-aminfo mostlyclean-generic
     492mostlyclean-am: mostlyclean-aminfo mostlyclean-generic mostlyclean-vti
    445493
    446494pdf: pdf-am
     
    460508        install-man install-strip installcheck installcheck-am \
    461509        installdirs maintainer-clean maintainer-clean-aminfo \
    462         maintainer-clean-generic mostlyclean mostlyclean-aminfo \
    463         mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am \
    464         uninstall-info-am
     510        maintainer-clean-generic maintainer-clean-vti mostlyclean \
     511        mostlyclean-aminfo mostlyclean-generic mostlyclean-vti pdf \
     512        pdf-am ps ps-am uninstall uninstall-am uninstall-info-am
    465513
    466514
  • vendor/gnumake/current/doc/fdl.texi

    r152 r501  
    44
    55@cindex FDL, GNU Free Documentation License
    6 @center Version 1.1, March 2000
     6@center Version 1.2, November 2002
    77
    88@display
    9 Copyright @copyright{} 2000 Free Software Foundation, Inc.
    10 59 Temple Place, Suite 330, Boston, MA  02111-1307, USA
     9Copyright @copyright{} 2000,2001,2002 Free Software Foundation, Inc.
     1051 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
    1111
    1212Everyone is permitted to copy and distribute verbatim copies
     
    1919
    2020The purpose of this License is to make a manual, textbook, or other
    21 written document @dfn{free} in the sense of freedom: to assure everyone
    22 the effective freedom to copy and redistribute it, with or without
    23 modifying it, either commercially or noncommercially.  Secondarily,
    24 this License preserves for the author and publisher a way to get
    25 credit for their work, while not being considered responsible for
    26 modifications made by others.
     21functional and useful document @dfn{free} in the sense of freedom: to
     22assure everyone the effective freedom to copy and redistribute it,
     23with or without modifying it, either commercially or noncommercially.
     24Secondarily, this License preserves for the author and publisher a way
     25to get credit for their work, while not being considered responsible
     26for modifications made by others.
    2727
    2828This License is a kind of ``copyleft'', which means that derivative
     
    4242APPLICABILITY AND DEFINITIONS
    4343
    44 This License applies to any manual or other work that contains a
    45 notice placed by the copyright holder saying it can be distributed
    46 under the terms of this License.  The ``Document'', below, refers to any
    47 such manual or work.  Any member of the public is a licensee, and is
    48 addressed as ``you''.
     44This License applies to any manual or other work, in any medium, that
     45contains a notice placed by the copyright holder saying it can be
     46distributed under the terms of this License.  Such a notice grants a
     47world-wide, royalty-free license, unlimited in duration, to use that
     48work under the conditions stated herein.  The ``Document'', below,
     49refers to any such manual or work.  Any member of the public is a
     50licensee, and is addressed as ``you''.  You accept the license if you
     51copy, modify or distribute the work in a way requiring permission
     52under copyright law.
    4953
    5054A ``Modified Version'' of the Document means any work containing the
     
    5256modifications and/or translated into another language.
    5357
    54 A ``Secondary Section'' is a named appendix or a front-matter section of
    55 the Document that deals exclusively with the relationship of the
    56 publishers or authors of the Document to the Document's overall subject
    57 (or to related matters) and contains nothing that could fall directly
    58 within that overall subject.  (For example, if the Document is in part a
    59 textbook of mathematics, a Secondary Section may not explain any
    60 mathematics.)  The relationship could be a matter of historical
     58A ``Secondary Section'' is a named appendix or a front-matter section
     59of the Document that deals exclusively with the relationship of the
     60publishers or authors of the Document to the Document's overall
     61subject (or to related matters) and contains nothing that could fall
     62directly within that overall subject.  (Thus, if the Document is in
     63part a textbook of mathematics, a Secondary Section may not explain
     64any mathematics.)  The relationship could be a matter of historical
    6165connection with the subject or with related matters, or of legal,
    6266commercial, philosophical, ethical or political position regarding
     
    6569The ``Invariant Sections'' are certain Secondary Sections whose titles
    6670are designated, as being those of Invariant Sections, in the notice
    67 that says that the Document is released under this License.
     71that says that the Document is released under this License.  If a
     72section does not fit the above definition of Secondary then it is not
     73allowed to be designated as Invariant.  The Document may contain zero
     74Invariant Sections.  If the Document does not identify any Invariant
     75Sections then there are none.
    6876
    6977The ``Cover Texts'' are certain short passages of text that are listed,
    7078as Front-Cover Texts or Back-Cover Texts, in the notice that says that
    71 the Document is released under this License.
     79the Document is released under this License.  A Front-Cover Text may
     80be at most 5 words, and a Back-Cover Text may be at most 25 words.
    7281
    7382A ``Transparent'' copy of the Document means a machine-readable copy,
    7483represented in a format whose specification is available to the
    75 general public, whose contents can be viewed and edited directly and
     84general public, that is suitable for revising the document
    7685straightforwardly with generic text editors or (for images composed of
    7786pixels) generic paint programs or (for drawings) some widely available
     
    7988for automatic translation to a variety of formats suitable for input
    8089to text formatters.  A copy made in an otherwise Transparent file
    81 format whose markup has been designed to thwart or discourage
    82 subsequent modification by readers is not Transparent.  A copy that is
    83 not ``Transparent'' is called ``Opaque''.
     90format whose markup, or absence of markup, has been arranged to thwart
     91or discourage subsequent modification by readers is not Transparent.
     92An image format is not Transparent if used for any substantial amount
     93of text.  A copy that is not ``Transparent'' is called ``Opaque''.
    8494
    8595Examples of suitable formats for Transparent copies include plain
    86 @sc{ascii} without markup, Texinfo input format, La@TeX{} input format,
    87 @acronym{SGML} or @acronym{XML} using a publicly available
    88 @acronym{DTD}, and standard-conforming simple @acronym{HTML} designed
    89 for human modification.  Opaque formats include PostScript,
    90 @acronym{PDF}, proprietary formats that can be read and edited only by
    91 proprietary word processors, @acronym{SGML} or @acronym{XML} for which
    92 the @acronym{DTD} and/or processing tools are not generally available,
    93 and the machine-generated @acronym{HTML} produced by some word
    94 processors for output purposes only.
     96@sc{ascii} without markup, Texinfo input format, La@TeX{} input
     97format, @acronym{SGML} or @acronym{XML} using a publicly available
     98@acronym{DTD}, and standard-conforming simple @acronym{HTML},
     99PostScript or @acronym{PDF} designed for human modification.  Examples
     100of transparent image formats include @acronym{PNG}, @acronym{XCF} and
     101@acronym{JPG}.  Opaque formats include proprietary formats that can be
     102read and edited only by proprietary word processors, @acronym{SGML} or
     103@acronym{XML} for which the @acronym{DTD} and/or processing tools are
     104not generally available, and the machine-generated @acronym{HTML},
     105PostScript or @acronym{PDF} produced by some word processors for
     106output purposes only.
    95107
    96108The ``Title Page'' means, for a printed book, the title page itself,
     
    100112the text near the most prominent appearance of the work's title,
    101113preceding the beginning of the body of the text.
     114
     115A section ``Entitled XYZ'' means a named subunit of the Document whose
     116title either is precisely XYZ or contains XYZ in parentheses following
     117text that translates XYZ in another language.  (Here XYZ stands for a
     118specific section name mentioned below, such as ``Acknowledgements'',
     119``Dedications'', ``Endorsements'', or ``History''.)  To ``Preserve the Title''
     120of such a section when you modify the Document means that it remains a
     121section ``Entitled XYZ'' according to this definition.
     122
     123The Document may include Warranty Disclaimers next to the notice which
     124states that this License applies to the Document.  These Warranty
     125Disclaimers are considered to be included by reference in this
     126License, but only as regards disclaiming warranties: any other
     127implication that these Warranty Disclaimers may have is void and has
     128no effect on the meaning of this License.
    102129
    103130@item
     
    120147COPYING IN QUANTITY
    121148
    122 If you publish printed copies of the Document numbering more than 100,
    123 and the Document's license notice requires Cover Texts, you must enclose
    124 the copies in covers that carry, clearly and legibly, all these Cover
     149If you publish printed copies (or copies in media that commonly have
     150printed covers) of the Document, numbering more than 100, and the
     151Document's license notice requires Cover Texts, you must enclose the
     152copies in covers that carry, clearly and legibly, all these Cover
    125153Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
    126154the back cover.  Both covers must also clearly and legibly identify
     
    140168more than 100, you must either include a machine-readable Transparent
    141169copy along with each Opaque copy, or state in or with each Opaque copy
    142 a publicly-accessible computer-network location containing a complete
    143 Transparent copy of the Document, free of added material, which the
    144 general network-using public has access to download anonymously at no
    145 charge using public-standard network protocols.  If you use the latter
    146 option, you must take reasonably prudent steps, when you begin
    147 distribution of Opaque copies in quantity, to ensure that this
    148 Transparent copy will remain thus accessible at the stated location
    149 until at least one year after the last time you distribute an Opaque
    150 copy (directly or through your agents or retailers) of that edition to
    151 the public.
     170a computer-network location from which the general network-using
     171public has access to download using public-standard network protocols
     172a complete Transparent copy of the Document, free of added material.
     173If you use the latter option, you must take reasonably prudent steps,
     174when you begin distribution of Opaque copies in quantity, to ensure
     175that this Transparent copy will remain thus accessible at the stated
     176location until at least one year after the last time you distribute an
     177Opaque copy (directly or through your agents or retailers) of that
     178edition to the public.
    152179
    153180It is requested, but not required, that you contact the authors of the
     
    177204responsible for authorship of the modifications in the Modified
    178205Version, together with at least five of the principal authors of the
    179 Document (all of its principal authors, if it has less than five).
     206Document (all of its principal authors, if it has fewer than five),
     207unless they release you from this requirement.
    180208
    181209@item
     
    203231
    204232@item
    205 Preserve the section entitled ``History'', and its title, and add to
    206 it an item stating at least the title, year, new authors, and
     233Preserve the section Entitled ``History'', Preserve its Title, and add
     234to it an item stating at least the title, year, new authors, and
    207235publisher of the Modified Version as given on the Title Page.  If
    208 there is no section entitled ``History'' in the Document, create one
     236there is no section Entitled ``History'' in the Document, create one
    209237stating the title, year, authors, and publisher of the Document as
    210238given on its Title Page, then add an item describing the Modified
     
    221249
    222250@item
    223 In any section entitled ``Acknowledgments'' or ``Dedications'',
    224 preserve the section's title, and preserve in the section all the
    225 substance and tone of each of the contributor acknowledgments
    226 and/or dedications given therein.
     251For any section Entitled ``Acknowledgements'' or ``Dedications'', Preserve
     252the Title of the section, and preserve in the section all the
     253substance and tone of each of the contributor acknowledgements and/or
     254dedications given therein.
    227255
    228256@item
     
    232260
    233261@item
    234 Delete any section entitled ``Endorsements''.  Such a section
     262Delete any section Entitled ``Endorsements''.  Such a section
    235263may not be included in the Modified Version.
    236264
    237265@item
    238 Do not retitle any existing section as ``Endorsements''
    239 or to conflict in title with any Invariant Section.
     266Do not retitle any existing section to be Entitled ``Endorsements'' or
     267to conflict in title with any Invariant Section.
     268
     269@item
     270Preserve any Warranty Disclaimers.
    240271@end enumerate
    241272
     
    247278These titles must be distinct from any other section titles.
    248279
    249 You may add a section entitled ``Endorsements'', provided it contains
     280You may add a section Entitled ``Endorsements'', provided it contains
    250281nothing but endorsements of your Modified Version by various
    251282parties---for example, statements of peer review or that the text has
     
    275306Invariant Sections of all of the original documents, unmodified, and
    276307list them all as Invariant Sections of your combined work in its
    277 license notice.
     308license notice, and that you preserve all their Warranty Disclaimers.
    278309
    279310The combined work need only contain one copy of this License, and
     
    286317Invariant Sections in the license notice of the combined work.
    287318
    288 In the combination, you must combine any sections entitled ``History''
    289 in the various original documents, forming one section entitled
    290 ``History''; likewise combine any sections entitled ``Acknowledgments'',
    291 and any sections entitled ``Dedications''.  You must delete all sections
    292 entitled ``Endorsements.''
     319In the combination, you must combine any sections Entitled ``History''
     320in the various original documents, forming one section Entitled
     321``History''; likewise combine any sections Entitled ``Acknowledgements'',
     322and any sections Entitled ``Dedications''.  You must delete all
     323sections Entitled ``Endorsements.''
    293324
    294325@item
     
    311342A compilation of the Document or its derivatives with other separate
    312343and independent documents or works, in or on a volume of a storage or
    313 distribution medium, does not as a whole count as a Modified Version
    314 of the Document, provided no compilation copyright is claimed for the
    315 compilation.  Such a compilation is called an ``aggregate'', and this
    316 License does not apply to the other self-contained works thus compiled
    317 with the Document, on account of their being thus compiled, if they
    318 are not themselves derivative works of the Document.
     344distribution medium, is called an ``aggregate'' if the copyright
     345resulting from the compilation is not used to limit the legal rights
     346of the compilation's users beyond what the individual works permit.
     347When the Document is included in an aggregate, this License does not
     348apply to the other works in the aggregate which are not themselves
     349derivative works of the Document.
    319350
    320351If the Cover Text requirement of section 3 is applicable to these
    321 copies of the Document, then if the Document is less than one quarter
    322 of the entire aggregate, the Document's Cover Texts may be placed on
    323 covers that surround only the Document within the aggregate.
    324 Otherwise they must appear on covers around the whole aggregate.
     352copies of the Document, then if the Document is less than one half of
     353the entire aggregate, the Document's Cover Texts may be placed on
     354covers that bracket the Document within the aggregate, or the
     355electronic equivalent of covers if the Document is in electronic form.
     356Otherwise they must appear on printed covers that bracket the whole
     357aggregate.
    325358
    326359@item
     
    333366translations of some or all Invariant Sections in addition to the
    334367original versions of these Invariant Sections.  You may include a
    335 translation of this License provided that you also include the
    336 original English version of this License.  In case of a disagreement
    337 between the translation and the original English version of this
    338 License, the original English version will prevail.
     368translation of this License, and all the license notices in the
     369Document, and any Warranty Disclaimers, provided that you also include
     370the original English version of this License and the original versions
     371of those notices and disclaimers.  In case of a disagreement between
     372the translation and the original version of this License or a notice
     373or disclaimer, the original version will prevail.
     374
     375If a section in the Document is Entitled ``Acknowledgements'',
     376``Dedications'', or ``History'', the requirement (section 4) to Preserve
     377its Title (section 1) will typically require changing the actual
     378title.
    339379
    340380@item
     
    379419  Copyright (C)  @var{year}  @var{your name}.
    380420  Permission is granted to copy, distribute and/or modify this document
    381   under the terms of the GNU Free Documentation License, Version 1.1
     421  under the terms of the GNU Free Documentation License, Version 1.2
    382422  or any later version published by the Free Software Foundation;
    383   with the Invariant Sections being @var{list their titles}, with the
    384   Front-Cover Texts being @var{list}, and with the Back-Cover Texts being @var{list}.
    385   A copy of the license is included in the section entitled ``GNU
     423  with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
     424  Texts.  A copy of the license is included in the section entitled ``GNU
    386425  Free Documentation License''.
    387426@end group
    388427@end smallexample
    389428
    390 If you have no Invariant Sections, write ``with no Invariant Sections''
    391 instead of saying which ones are invariant.  If you have no
    392 Front-Cover Texts, write ``no Front-Cover Texts'' instead of
    393 ``Front-Cover Texts being @var{list}''; likewise for Back-Cover Texts.
     429If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts,
     430replace the ``with...Texts.'' line with this:
     431
     432@smallexample
     433@group
     434    with the Invariant Sections being @var{list their titles}, with
     435    the Front-Cover Texts being @var{list}, and with the Back-Cover Texts
     436    being @var{list}.
     437@end group
     438@end smallexample
     439
     440If you have Invariant Sections without Cover Texts, or some other
     441combination of the three, merge those two alternatives to suit the
     442situation.
    394443
    395444If your document contains nontrivial examples of program code, we
  • vendor/gnumake/current/doc/make-stds.texi

    r152 r501  
    99@cindex standards for makefiles
    1010
    11 @c Copyright 1992, 1993, 1994, 1995, 1996, 1997, 1998, 2000, 2001 Free
    12 @c Software Foundation, Inc.
     11@c Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 2000, 2001,
     12@c 2004, 2005 Free Software Foundation, Inc.
    1313
    1414@c Permission is granted to copy, distribute and/or modify this document
     
    294294Installation directories should always be named by variables, so it is
    295295easy to install in a nonstandard place.  The standard names for these
    296 variables are described below.  They are based on a standard filesystem
    297 layout; variants of it are used in SVR4, 4.4BSD, GNU/Linux, Ultrix v4,
    298 and other modern operating systems.
     296variables and the values they should have in GNU packages are
     297described below.  They are based on a standard filesystem layout;
     298variants of it are used in GNU/Linux and other modern operating
     299systems.
     300
     301Installers are expected to override these values when calling
     302@command{make} (e.g., @kbd{make prefix=/usr install} or
     303@command{configure} (e.g., @kbd{configure --prefix=/usr}).  GNU
     304packages should not try to guess which value should be appropriate for
     305these variables on the system they are being installed onto: use the
     306default settings specified here so that all GNU packages behave
     307identically, allowing the installer to achieve any desired layout.
    299308
    300309These two variables set the root for the installation.  All the other
     
    356365@file{/usr/local/libexec}, but write it as @file{$(exec_prefix)/libexec}.
    357366(If you are using Autoconf, write it as @samp{@@libexecdir@@}.)
     367
     368The definition of @samp{libexecdir} is the same for all packages, so
     369you should install your data in a subdirectory thereof.  Most packages
     370install their data under @file{$(libexecdir)/@var{package-name}/},
     371possibly within additional subdirectories thereof, such as
     372@file{$(libexecdir)/@var{package-name}/@var{machine}/@var{version}}.
    358373@end table
    359374
     
    378393architecture-independent, and it is generally not hard.
    379394
    380 Therefore, here are the variables Makefiles should use to specify
    381 directories:
     395Here are the variables Makefiles should use to specify directories
     396to put these various kinds of files in:
    382397
    383398@table @samp
     399@item datarootdir
     400The root of the directory tree for read-only architecture-independent
     401data files.  This should normally be @file{/usr/local/share}, but
     402write it as @file{$(prefix)/share}.  (If you are using Autoconf, write
     403it as @samp{@@datarootdir@@}.)  @samp{datadir}'s default value is
     404based on this variable; so are @samp{infodir}, @samp{mandir}, and
     405others.
     406
    384407@item datadir
    385 The directory for installing read-only architecture independent data
    386 files.  This should normally be @file{/usr/local/share}, but write it as
    387 @file{$(prefix)/share}.
    388 (If you are using Autoconf, write it as @samp{@@datadir@@}.)
    389 As a special exception, see @file{$(infodir)}
    390 and @file{$(includedir)} below.
     408The directory for installing idiosyncratic read-only
     409architecture-independent data files for this program.  This is usually
     410the same place as @samp{datarootdir}, but we use the two separate
     411variables so that you can move these program-specific files without
     412altering the location for Info files, man pages, etc.
     413
     414This should normally be @file{/usr/local/share}, but write it as
     415@file{$(datarootdir)}.  (If you are using Autoconf, write it as
     416@samp{@@datadir@@}.)
     417
     418The definition of @samp{datadir} is the same for all packages, so you
     419should install your data in a subdirectory thereof.  Most packages
     420install their data under @file{$(datadir)/@var{package-name}/}.
    391421
    392422@item sysconfdir
     
    420450@file{$(prefix)/var}.
    421451(If you are using Autoconf, write it as @samp{@@localstatedir@@}.)
    422 
    423 @item libdir
    424 The directory for object files and libraries of object code.  Do not
    425 install executables here, they probably ought to go in @file{$(libexecdir)}
    426 instead.  The value of @code{libdir} should normally be
    427 @file{/usr/local/lib}, but write it as @file{$(exec_prefix)/lib}.
    428 (If you are using Autoconf, write it as @samp{@@libdir@@}.)
    429 
    430 @item infodir
    431 The directory for installing the Info files for this package.  By
    432 default, it should be @file{/usr/local/info}, but it should be written
    433 as @file{$(prefix)/info}.
    434 (If you are using Autoconf, write it as @samp{@@infodir@@}.)
    435 
    436 @item lispdir
    437 The directory for installing any Emacs Lisp files in this package.  By
    438 default, it should be @file{/usr/local/share/emacs/site-lisp}, but it
    439 should be written as @file{$(prefix)/share/emacs/site-lisp}.
    440 
    441 If you are using Autoconf, write the default as @samp{@@lispdir@@}.
    442 In order to make @samp{@@lispdir@@} work, you need the following lines
    443 in your @file{configure.in} file:
    444 
    445 @example
    446 lispdir='$@{datadir@}/emacs/site-lisp'
    447 AC_SUBST(lispdir)
    448 @end example
    449 
     452@end table
     453
     454These variables specify the directory for installing certain specific
     455types of files, if your program has them.  Every GNU package should
     456have Info files, so every program needs @samp{infodir}, but not all
     457need @samp{libdir} or @samp{lispdir}.
     458
     459@table @samp
    450460@item includedir
    451461@c rewritten to avoid overfull hbox --roland
     
    482492To tell whether @file{foo.h} came from the Foo package, put a magic
    483493string in the file---part of a comment---and @code{grep} for that string.
     494
     495@item docdir
     496The directory for installing documentation files (other than Info) for
     497this package.  By default, it should be
     498@file{/usr/local/share/doc/@var{yourpkg}}, but it should be written as
     499@file{$(datarootdir)/doc/@var{yourpkg}}.  (If you are using Autoconf,
     500write it as @samp{@@docdir@@}.)  The @var{yourpkg} subdirectory, which
     501may include a version number, prevents collisions among files with
     502common names, such as @file{README}.
     503
     504@item infodir
     505The directory for installing the Info files for this package.  By
     506default, it should be @file{/usr/local/share/info}, but it should be
     507written as @file{$(datarootdir)/info}.  (If you are using Autoconf,
     508write it as @samp{@@infodir@@}.)  @code{infodir} is separate from
     509@code{docdir} for compatibility with existing practice.
     510
     511@item htmldir
     512@itemx dvidir
     513@itemx pdfdir
     514@itemx psdir
     515Directories for installing documentation files in the particular
     516format.  (It is not required to support documentation in all these
     517formats.)  They should all be set to @code{$(docdir)} by default.  (If
     518you are using Autoconf, write them as @samp{@@htmldir@@},
     519@samp{@@dvidir@@}, etc.)  Packages which supply several translations
     520of their documentation should install them in
     521@samp{$(htmldir)/}@var{ll}, @samp{$(pdfdir)/}@var{ll}, etc. where
     522@var{ll} is a locale abbreviation such as @samp{en} or @samp{pt_BR}.
     523
     524@item libdir
     525The directory for object files and libraries of object code.  Do not
     526install executables here, they probably ought to go in @file{$(libexecdir)}
     527instead.  The value of @code{libdir} should normally be
     528@file{/usr/local/lib}, but write it as @file{$(exec_prefix)/lib}.
     529(If you are using Autoconf, write it as @samp{@@libdir@@}.)
     530
     531@item lispdir
     532The directory for installing any Emacs Lisp files in this package.  By
     533default, it should be @file{/usr/local/share/emacs/site-lisp}, but it
     534should be written as @file{$(datarootdir)/emacs/site-lisp}.
     535
     536If you are using Autoconf, write the default as @samp{@@lispdir@@}.
     537In order to make @samp{@@lispdir@@} work, you need the following lines
     538in your @file{configure.in} file:
     539
     540@example
     541lispdir='$@{datarootdir@}/emacs/site-lisp'
     542AC_SUBST(lispdir)
     543@end example
     544
     545@item localedir
     546The directory for installing locale-specific message catalogs for this
     547package.  By default, it should be @file{/usr/local/share/locale}, but
     548it should be written as @file{$(datarootdir)/locale}.  (If you are
     549using Autoconf, write it as @samp{@@localedir@@}.)  This directory
     550usually has a subdirectory per locale.
    484551@end table
    485552
     
    489556@item mandir
    490557The top-level directory for installing the man pages (if any) for this
    491 package.  It will normally be @file{/usr/local/man}, but you should
    492 write it as @file{$(prefix)/man}.
    493 (If you are using Autoconf, write it as @samp{@@mandir@@}.)
     558package.  It will normally be @file{/usr/local/share/man}, but you
     559should write it as @file{$(datarootdir)/man}.  (If you are using
     560Autoconf, write it as @samp{@@mandir@@}.)
    494561
    495562@item man1dir
     
    536603# NOTE: This directory must exist when you start the install.
    537604prefix = /usr/local
     605datarootdir = $(prefix)/share
     606datadir = $(datarootdir)
    538607exec_prefix = $(prefix)
    539608# Where to put the executable for the command `gcc'.
     
    542611libexecdir = $(exec_prefix)/libexec
    543612# Where to put the Info files.
    544 infodir = $(prefix)/info
     613infodir = $(datarootdir)/info
    545614@end smallexample
    546615
     
    631700Categories}.
    632701
     702@item install-html
     703@itemx install-dvi
     704@itemx install-pdf
     705@itemx install-ps
     706These targets install documentation in formats other than Info;
     707they're intended to be called explicitly by the person installing the
     708package, if that format is desired.  GNU prefers Info files, so these
     709must be installed by the @code{install} target.
     710
     711When you have many documentation files to install, we recommend that
     712you avoid collisions and clutter by arranging for these targets to
     713install in subdirectories of the appropriate installation directory,
     714such as @code{htmldir}.  As one example, if your package has multiple
     715manuals, and you wish to install HTML documentation with many files
     716(such as the ``split'' mode output by @code{makeinfo --html}), you'll
     717certainly want to use subdirectories, or two nodes with the same name
     718in different manuals will overwrite each other.
     719
    633720@item uninstall
    634721Delete all the installed files---the copies that the @samp{install}
    635 target creates.
     722and @samp{install-*} targets create.
    636723
    637724This rule should not modify the directories where compilation is done,
     
    669756@item clean
    670757
    671 Delete all files from the current directory that are normally created by
    672 building the program.  Don't delete the files that record the
    673 configuration.  Also preserve files that could be made by building, but
    674 normally aren't because the distribution comes with them.
     758Delete all files in the current directory that are normally created by
     759building the program.  Also delete files in other directories if they
     760are created by this makefile.  However, don't delete the files that
     761record the configuration.  Also preserve files that could be made by
     762building, but normally aren't because the distribution comes with
     763them.  There is no need to delete parent directories that were created
     764with @samp{mkdir -p}, since they could have existed anyway.
    675765
    676766Delete @file{.dvi} files here if they are not part of the distribution.
    677767
    678768@item distclean
    679 Delete all files from the current directory that are created by
    680 configuring or building the program.  If you have unpacked the source
    681 and built the program without creating any other files, @samp{make
    682 distclean} should leave only the files that were in the distribution.
     769Delete all files in the current directory (or created by this
     770makefile) that are created by configuring or building the program.  If
     771you have unpacked the source and built the program without creating
     772any other files, @samp{make distclean} should leave only the files
     773that were in the distribution.  However, there is no need to delete
     774parent directories that were created with @samp{mkdir -p}, since they
     775could have existed anyway.
    683776
    684777@item mostlyclean
     
    689782
    690783@item maintainer-clean
    691 Delete almost everything from the current directory that can be
    692 reconstructed with this Makefile.  This typically includes everything
    693 deleted by @code{distclean}, plus more: C source files produced by
    694 Bison, tags tables, Info files, and so on.
     784Delete almost everything that can be reconstructed with this Makefile.
     785This typically includes everything deleted by @code{distclean}, plus
     786more: C source files produced by Bison, tags tables, Info files, and
     787so on.
    695788
    696789The reason we say ``almost everything'' is that running the command
    697 @samp{make maintainer-clean} should not delete @file{configure} even if
    698 @file{configure} can be remade using a rule in the Makefile.  More generally,
    699 @samp{make maintainer-clean} should not delete anything that needs to
    700 exist in order to run @file{configure} and then begin to build the
    701 program.  This is the only exception; @code{maintainer-clean} should
    702 delete everything else that can be rebuilt.
     790@samp{make maintainer-clean} should not delete @file{configure} even
     791if @file{configure} can be remade using a rule in the Makefile.  More
     792generally, @samp{make maintainer-clean} should not delete anything
     793that needs to exist in order to run @file{configure} and then begin to
     794build the program.  Also, there is no need to delete parent
     795directories that were created with @samp{mkdir -p}, since they could
     796have existed anyway.  These are the only exceptions;
     797@code{maintainer-clean} should delete everything else that can be
     798rebuilt.
    703799
    704800The @samp{maintainer-clean} target is intended to be used by a maintainer of
     
    744840
    745841@item dvi
    746 Generate DVI files for all Texinfo documentation.
    747 For example:
     842@itemx html
     843@itemx pdf
     844@itemx ps
     845Generate documentation files in the given format, if possible.
     846Here's an example rule for generating DVI files from Texinfo:
    748847
    749848@smallexample
     
    760859of formatting. @TeX{} is not distributed with Texinfo.}  Alternatively,
    761860write just the dependencies, and allow GNU @code{make} to provide the command.
     861
     862Here's another example, this one for generating HTML from Texinfo:
     863
     864@smallexample
     865html: foo.html
     866
     867foo.html: foo.texi chap1.texi chap2.texi
     868        $(TEXI2HTML) $(srcdir)/foo.texi
     869@end smallexample
     870
     871@noindent
     872Again, you would define the variable @code{TEXI2HTML} in the Makefile;
     873for example, it might run @code{makeinfo --no-split --html}
     874(@command{makeinfo} is part of the Texinfo distribution).
    762875
    763876@item dist
     
    9331046Programs to build binary packages work by extracting the
    9341047pre-installation and post-installation commands.  Here is one way of
    935 extracting the pre-installation commands:
    936 
    937 @smallexample
    938 make -n install -o all \
     1048extracting the pre-installation commands (the @option{-s} option to
     1049@command{make} is needed to silence messages about entering
     1050subdirectories):
     1051
     1052@smallexample
     1053make -s -n install -o all \
    9391054      PRE_INSTALL=pre-install \
    9401055      POST_INSTALL=post-install \
     
    9471062
    9481063@smallexample
    949 $0 ~ /^\t[ \t]*(normal_install|post_install)[ \t]*$/ @{on = 0@}
     1064$0 ~ /^(normal-install|post-install)[ \t]*$/ @{on = 0@}
    9501065on @{print $0@}
    951 $0 ~ /^\t[ \t]*pre_install[ \t]*$/ @{on = 1@}
    952 @end smallexample
    953 
    954 The resulting file of pre-installation commands is executed as a shell
    955 script as part of installing the binary package.
     1066$0 ~ /^pre-install[ \t]*$/ @{on = 1@}
     1067@end smallexample
  • vendor/gnumake/current/doc/make.info

    r152 r501  
    1 This is make.info, produced by makeinfo version 4.6 from make.texi.
     1This is make.info, produced by makeinfo version 4.8 from make.texi.
     2
     3   This file documents the GNU `make' utility, which determines
     4automatically which pieces of a large program need to be recompiled,
     5and issues the commands to recompile them.
     6
     7   This is Edition 0.70, last updated 1 April 2006, of `The GNU Make
     8Manual', for GNU `make' version 3.81.
     9
     10   Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996,
     111997, 1998, 1999, 2000, 2002, 2003, 2004, 2005, 2006 Free Software
     12Foundation, Inc.
     13
     14     Permission is granted to copy, distribute and/or modify this
     15     document under the terms of the GNU Free Documentation License,
     16     Version 1.2 or any later version published by the Free Software
     17     Foundation; with no Invariant Sections, with the Front-Cover Texts
     18     being "A GNU Manual," and with the Back-Cover Texts as in (a)
     19     below.  A copy of the license is included in the section entitled
     20     "GNU Free Documentation License."
     21
     22     (a) The FSF's Back-Cover Text is: "You have freedom to copy and
     23     modify this GNU Manual, like GNU software.  Copies published by
     24     the Free Software Foundation raise funds for GNU development."
    225
    326INFO-DIR-SECTION GNU Packages
     
    629END-INFO-DIR-ENTRY
    730
    8    This file documents the GNU Make utility, which determines
    9 automatically which pieces of a large program need to be recompiled,
    10 and issues the commands to recompile them.
    11 
    12    This is Edition 0.61, last updated 02 May 2003, of `The GNU Make
    13 Manual', for `make', Version 3.81.
    14 
    15    Copyright 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
    16 1998, 1999, 2000, 2002, 2003, 2004 Free Software Foundation, Inc.
    17 
    18    Permission is granted to copy, distribute and/or modify this document
    19 under the terms of the GNU Free Documentation License, Version 1.1 or
    20 any later version published by the Free Software Foundation; with no
    21 Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
    22 Texts.  A copy of the license is included in the section entitled "GNU
    23 Free Documentation License".
    24 
    2531
    2632Indirect:
    27 make.info-1: 997
    28 make.info-2: 300500
     33make.info-1: 1297
     34make.info-2: 301265
    2935
    3036Tag Table:
    3137(Indirect)
    32 Node: Top997
    33 Node: Overview13531
    34 Node: Preparing14535
    35 Node: Reading15507
    36 Node: Bugs16426
    37 Node: Introduction18248
    38 Node: Rule Introduction19832
    39 Node: Simple Makefile21568
    40 Node: How Make Works25189
    41 Node: Variables Simplify27677
    42 Node: make Deduces29880
    43 Node: Combine By Prerequisite31627
    44 Node: Cleanup32658
    45 Node: Makefiles34069
    46 Node: Makefile Contents34952
    47 Node: Makefile Names37899
    48 Node: Include39498
    49 Ref: Include-Footnote-143049
    50 Node: MAKEFILES Variable43183
    51 Node: MAKEFILE_LIST Variable44685
    52 Node: Special Variables46004
    53 Node: Remaking Makefiles46739
    54 Node: Overriding Makefiles50981
    55 Node: Reading Makefiles53031
    56 Node: Rules55558
    57 Node: Rule Example58226
    58 Node: Rule Syntax59075
    59 Node: Prerequisite Types61296
    60 Node: Wildcards63064
    61 Node: Wildcard Examples64747
    62 Node: Wildcard Pitfall65991
    63 Node: Wildcard Function67773
    64 Node: Directory Search69550
    65 Node: General Search70684
    66 Node: Selective Search72387
    67 Node: Search Algorithm75363
    68 Node: Commands/Search77870
    69 Node: Implicit/Search79205
    70 Node: Libraries/Search80137
    71 Node: Phony Targets82219
    72 Node: Force Targets87195
    73 Node: Empty Targets88232
    74 Node: Special Targets89519
    75 Node: Multiple Targets96215
    76 Node: Multiple Rules98075
    77 Node: Static Pattern100301
    78 Node: Static Usage100943
    79 Node: Static versus Implicit104664
    80 Node: Double-Colon106394
    81 Node: Automatic Prerequisites108041
    82 Node: Commands112295
    83 Node: Echoing113984
    84 Node: Execution115262
    85 Ref: Execution-Footnote-1119688
    86 Node: Parallel119834
    87 Node: Errors123417
    88 Node: Interrupts127053
    89 Node: Recursion128632
    90 Node: MAKE Variable130715
    91 Node: Variables/Recursion132966
    92 Node: Options/Recursion138111
    93 Node: -w Option143264
    94 Node: Sequences144247
    95 Node: Empty Commands147248
    96 Node: Using Variables148414
    97 Node: Reference151521
    98 Node: Flavors153077
    99 Node: Advanced158861
    100 Node: Substitution Refs159358
    101 Node: Computed Names160904
    102 Node: Values165471
    103 Node: Setting166376
    104 Node: Appending168404
    105 Node: Override Directive172319
    106 Node: Defining173695
    107 Node: Environment176151
    108 Node: Target-specific178423
    109 Node: Pattern-specific181380
    110 Node: Conditionals182772
    111 Node: Conditional Example183478
    112 Node: Conditional Syntax186062
    113 Node: Testing Flags190930
    114 Node: Functions192024
    115 Node: Syntax of Functions193366
    116 Node: Text Functions195557
    117 Node: File Name Functions203707
    118 Node: Foreach Function208146
    119 Node: If Function211346
    120 Node: Call Function212614
    121 Node: Value Function215496
    122 Node: Eval Function216930
    123 Node: Origin Function219236
    124 Node: Shell Function222445
    125 Node: Make Control Functions224026
    126 Node: Running225456
    127 Node: Makefile Arguments227441
    128 Node: Goals228149
    129 Node: Instead of Execution232704
    130 Node: Avoiding Compilation235982
    131 Node: Overriding237949
    132 Node: Testing240239
    133 Node: Options Summary242116
    134 Node: Implicit Rules251547
    135 Node: Using Implicit253691
    136 Node: Catalogue of Rules257220
    137 Node: Implicit Variables266203
    138 Node: Chained Rules270429
    139 Node: Pattern Rules274428
    140 Node: Pattern Intro275954
    141 Node: Pattern Examples278802
    142 Node: Automatic Variables280597
    143 Node: Pattern Match288760
    144 Node: Match-Anything Rules290381
    145 Node: Canceling Rules294242
    146 Node: Last Resort294944
    147 Node: Suffix Rules296781
    148 Node: Implicit Rule Search300500
    149 Node: Archives304009
    150 Node: Archive Members304701
    151 Node: Archive Update306297
    152 Node: Archive Symbols308201
    153 Node: Archive Pitfalls309421
    154 Node: Archive Suffix Rules310134
    155 Node: Features311671
    156 Node: Missing320218
    157 Node: Makefile Conventions323948
    158 Node: Makefile Basics324728
    159 Node: Utilities in Makefiles327885
    160 Node: Command Variables330013
    161 Node: Directory Variables333573
    162 Node: Standard Targets344450
    163 Ref: Standard Targets-Footnote-1355704
    164 Node: Install Command Categories355804
    165 Node: Quick Reference360369
    166 Node: Error Messages370113
    167 Node: Complex Makefile377782
    168 Node: GNU Free Documentation License386462
    169 Node: Concept Index406354
    170 Node: Name Index451260
     38Node: Top1297
     39Node: Overview14702
     40Node: Preparing15712
     41Node: Reading16684
     42Node: Bugs17611
     43Node: Introduction19441
     44Node: Rule Introduction21033
     45Node: Simple Makefile22777
     46Node: How Make Works26406
     47Node: Variables Simplify29061
     48Node: make Deduces31267
     49Node: Combine By Prerequisite33007
     50Node: Cleanup34036
     51Node: Makefiles35455
     52Node: Makefile Contents36421
     53Node: Makefile Names39376
     54Node: Include40987
     55Ref: Include-Footnote-144619
     56Node: MAKEFILES Variable44753
     57Node: MAKEFILE_LIST Variable46263
     58Node: Special Variables47531
     59Node: Remaking Makefiles51038
     60Node: Overriding Makefiles55287
     61Node: Reading Makefiles57340
     62Node: Secondary Expansion60244
     63Node: Rules67678
     64Node: Rule Example70350
     65Node: Rule Syntax71207
     66Node: Prerequisite Types73710
     67Node: Wildcards75486
     68Node: Wildcard Examples77204
     69Node: Wildcard Pitfall78460
     70Node: Wildcard Function80249
     71Node: Directory Search82033
     72Node: General Search83175
     73Node: Selective Search84890
     74Node: Search Algorithm87878
     75Node: Commands/Search90397
     76Node: Implicit/Search91743
     77Node: Libraries/Search92687
     78Node: Phony Targets94779
     79Node: Force Targets99865
     80Node: Empty Targets100910
     81Node: Special Targets102208
     82Node: Multiple Targets109382
     83Node: Multiple Rules111257
     84Node: Static Pattern113493
     85Node: Static Usage114145
     86Node: Static versus Implicit117866
     87Node: Double-Colon119610
     88Node: Automatic Prerequisites121267
     89Node: Commands125545
     90Node: Command Syntax126753
     91Node: Splitting Lines128778
     92Node: Variables in Commands131759
     93Node: Echoing133086
     94Node: Execution134378
     95Ref: Execution-Footnote-1135629
     96Node: Choosing the Shell135775
     97Node: Parallel139744
     98Node: Errors143337
     99Node: Interrupts146983
     100Node: Recursion148570
     101Node: MAKE Variable150664
     102Node: Variables/Recursion152931
     103Node: Options/Recursion158372
     104Node: -w Option163537
     105Node: Sequences164532
     106Node: Empty Commands167544
     107Node: Using Variables168718
     108Node: Reference171831
     109Node: Flavors173390
     110Node: Advanced179128
     111Node: Substitution Refs179633
     112Node: Computed Names181186
     113Node: Values185730
     114Node: Setting186643
     115Node: Appending188679
     116Node: Override Directive192605
     117Node: Defining193989
     118Node: Environment196453
     119Node: Target-specific198702
     120Node: Pattern-specific201669
     121Node: Conditionals203071
     122Node: Conditional Example203781
     123Node: Conditional Syntax206358
     124Node: Testing Flags212083
     125Node: Functions213185
     126Node: Syntax of Functions214605
     127Node: Text Functions216804
     128Node: File Name Functions225375
     129Node: Conditional Functions230597
     130Node: Foreach Function232971
     131Node: Call Function236183
     132Node: Value Function239068
     133Node: Eval Function240505
     134Node: Origin Function242779
     135Node: Flavor Function245997
     136Node: Shell Function247063
     137Node: Make Control Functions248697
     138Node: Running250366
     139Node: Makefile Arguments252355
     140Node: Goals253071
     141Node: Instead of Execution257812
     142Node: Avoiding Compilation261098
     143Node: Overriding263073
     144Node: Testing265371
     145Node: Options Summary267256
     146Node: Implicit Rules277382
     147Node: Using Implicit279530
     148Node: Catalogue of Rules283069
     149Node: Implicit Variables292419
     150Node: Chained Rules297254
     151Node: Pattern Rules301265
     152Node: Pattern Intro302801
     153Node: Pattern Examples305698
     154Node: Automatic Variables307507
     155Node: Pattern Match314878
     156Node: Match-Anything Rules316514
     157Node: Canceling Rules320389
     158Node: Last Resort321105
     159Node: Suffix Rules322952
     160Node: Implicit Rule Search326681
     161Node: Archives330200
     162Node: Archive Members330898
     163Node: Archive Update332511
     164Node: Archive Symbols334425
     165Node: Archive Pitfalls335659
     166Node: Archive Suffix Rules336382
     167Node: Features337929
     168Node: Missing346484
     169Node: Makefile Conventions350222
     170Node: Makefile Basics351008
     171Node: Utilities in Makefiles354175
     172Node: Command Variables356313
     173Node: Directory Variables359883
     174Node: Standard Targets374023
     175Ref: Standard Targets-Footnote-1387142
     176Node: Install Command Categories387242
     177Node: Quick Reference391768
     178Node: Error Messages402464
     179Node: Complex Makefile410154
     180Node: GNU Free Documentation License418872
     181Node: Concept Index441321
     182Node: Name Index506510
    171183
    172184End Tag Table
  • vendor/gnumake/current/doc/make.info-1

    r152 r501  
    1 This is make.info, produced by makeinfo version 4.6 from make.texi.
     1This is make.info, produced by makeinfo version 4.8 from make.texi.
     2
     3   This file documents the GNU `make' utility, which determines
     4automatically which pieces of a large program need to be recompiled,
     5and issues the commands to recompile them.
     6
     7   This is Edition 0.70, last updated 1 April 2006, of `The GNU Make
     8Manual', for GNU `make' version 3.81.
     9
     10   Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996,
     111997, 1998, 1999, 2000, 2002, 2003, 2004, 2005, 2006 Free Software
     12Foundation, Inc.
     13
     14     Permission is granted to copy, distribute and/or modify this
     15     document under the terms of the GNU Free Documentation License,
     16     Version 1.2 or any later version published by the Free Software
     17     Foundation; with no Invariant Sections, with the Front-Cover Texts
     18     being "A GNU Manual," and with the Back-Cover Texts as in (a)
     19     below.  A copy of the license is included in the section entitled
     20     "GNU Free Documentation License."
     21
     22     (a) The FSF's Back-Cover Text is: "You have freedom to copy and
     23     modify this GNU Manual, like GNU software.  Copies published by
     24     the Free Software Foundation raise funds for GNU development."
    225
    326INFO-DIR-SECTION GNU Packages
     
    629END-INFO-DIR-ENTRY
    730
    8    This file documents the GNU Make utility, which determines
     31
     32File: make.info,  Node: Top,  Next: Overview,  Prev: (dir),  Up: (dir)
     33
     34GNU `make'
     35**********
     36
     37This file documents the GNU `make' utility, which determines
    938automatically which pieces of a large program need to be recompiled,
    1039and issues the commands to recompile them.
    1140
    12    This is Edition 0.61, last updated 02 May 2003, of `The GNU Make
    13 Manual', for `make', Version 3.81.
    14 
    15    Copyright 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
    16 1998, 1999, 2000, 2002, 2003, 2004 Free Software Foundation, Inc.
    17 
    18    Permission is granted to copy, distribute and/or modify this document
    19 under the terms of the GNU Free Documentation License, Version 1.1 or
    20 any later version published by the Free Software Foundation; with no
    21 Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
    22 Texts.  A copy of the license is included in the section entitled "GNU
    23 Free Documentation License".
    24 
    25 
    26 File: make.info,  Node: Top,  Next: Overview,  Prev: (dir),  Up: (dir)
    27 
    28 Make
    29 ****
    30 
    31 The GNU `make' utility automatically determines which pieces of a large
    32 program need to be recompiled, and issues the commands to recompile
    33 them.
    34 
    35    This edition of the `GNU Make Manual', last updated 02 May 2003,
    36 documents GNU `make' Version 3.81.
    37 
    38    This manual describes `make' and contains the following chapters:
     41   This is Edition 0.70, last updated 1 April 2006, of `The GNU Make
     42Manual', for GNU `make' version 3.81.
     43
     44   Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996,
     451997, 1998, 1999, 2000, 2002, 2003, 2004, 2005, 2006 Free Software
     46Foundation, Inc.
     47
     48     Permission is granted to copy, distribute and/or modify this
     49     document under the terms of the GNU Free Documentation License,
     50     Version 1.2 or any later version published by the Free Software
     51     Foundation; with no Invariant Sections, with the Front-Cover Texts
     52     being "A GNU Manual," and with the Back-Cover Texts as in (a)
     53     below.  A copy of the license is included in the section entitled
     54     "GNU Free Documentation License."
     55
     56     (a) The FSF's Back-Cover Text is: "You have freedom to copy and
     57     modify this GNU Manual, like GNU software.  Copies published by
     58     the Free Software Foundation raise funds for GNU development."
    3959
    4060* Menu:
     
    96116                                  with another makefile.
    97117* Reading Makefiles::           How makefiles are parsed.
     118* Secondary Expansion::         How and when secondary expansion is performed.
    98119
    99120Writing Rules
     
    106127* Phony Targets::               Using a target that is not a real file's name.
    107128* Force Targets::               You can use a target without commands
    108                                   or prerequisites to mark other
    109                                   targets as phony.
     129                                  or prerequisites to mark other targets
     130                                  as phony.
    110131* Empty Targets::               When only the date matters and the
    111132                                  files are empty.
     
    147168Writing the Commands in Rules
    148169
     170* Command Syntax::              Command syntax features and pitfalls.
    149171* Echoing::                     How to control when commands are echoed.
    150172* Execution::                   How commands are executed.
     
    155177* Sequences::                   Defining canned sequences of commands.
    156178* Empty Commands::              Defining useful, do-nothing commands.
     179
     180Command Syntax
     181
     182* Splitting Lines::             Breaking long command lines for readability.
     183* Variables in Commands::       Using `make' variables in commands.
     184
     185Command Execution
     186
     187* Choosing the Shell::          How `make' chooses the shell used
     188                                  to run commands.
    157189
    158190Recursive Use of `make'
     
    200232* Text Functions::              General-purpose text manipulation functions.
    201233* File Name Functions::         Functions for manipulating file names.
     234* Conditional Functions::       Functions that implement conditions.
    202235* Foreach Function::            Repeat some text with controlled variation.
    203 * If Function::                 Conditionally expand a value.
    204236* Call Function::               Expand a user-defined function.
    205237* Value Function::              Return the un-expanded value of a variable.
    206238* Eval Function::               Evaluate the arguments as makefile syntax.
    207239* Origin Function::             Find where a variable got its value.
     240* Flavor Function::             Find out the flavor of a variable.
    208241* Shell Function::              Substitute the output of a shell command.
    209242* Make Control Functions::      Functions that control how make runs.
     
    233266* Chained Rules::               How to use a chain of implicit rules.
    234267* Pattern Rules::               How to define new implicit rules.
    235 * Last Resort::                 How to defining commands for rules
    236                                   which cannot find any.
     268* Last Resort::                 How to define commands for rules which
     269                                  cannot find any.
    237270* Suffix Rules::                The old-fashioned style of implicit rule.
    238271* Implicit Rule Search::        The precise algorithm for applying
     
    263296* Archive Symbols::             How to update archive symbol directories.
    264297
    265 Makefile Conventions
    266 
    267 * Makefile Basics::             General Conventions for Makefiles
    268 * Utilities in Makefiles::      Utilities in Makefiles
    269 * Command Variables::           Variables for Specifying Commands
    270 * Directory Variables::         Variables for Installation Directories
    271 * Standard Targets::            Standard Targets for Users
    272 * Install Command Categories::  Three categories of commands in the `install'
    273 
    274 Copying This Manual
    275 
    276298
    277299File: make.info,  Node: Overview,  Next: Introduction,  Prev: Top,  Up: Top
    278300
    279 Overview of `make'
    280 ******************
     3011 Overview of `make'
     302********************
    281303
    282304The `make' utility automatically determines which pieces of a large
     
    287309
    288310   GNU `make' conforms to section 6.2 of `IEEE Standard 1003.2-1992'
    289 (POSIX.2).
     311(POSIX.2). 
    290312
    291313   Our examples show C programs, since they are most common, but you
     
    329351File: make.info,  Node: Reading,  Next: Bugs,  Prev: Preparing,  Up: Overview
    330352
    331 How to Read This Manual
    332 =======================
     3531.1 How to Read This Manual
     354===========================
    333355
    334356If you are new to `make', or are looking for a general introduction,
     
    350372File: make.info,  Node: Bugs,  Prev: Reading,  Up: Overview
    351373
    352 Problems and Bugs
    353 =================
     3741.2 Problems and Bugs
     375=====================
    354376
    355377If you have problems with GNU `make' or think you've found a bug,
     
    393415File: make.info,  Node: Introduction,  Next: Makefiles,  Prev: Overview,  Up: Top
    394416
    395 An Introduction to Makefiles
    396 ****************************
     4172 An Introduction to Makefiles
     418******************************
    397419
    398420You need a file called a "makefile" to tell `make' what to do.  Most
    399 often, the makefile tells `make' how to compile and link a program.
     421often, the makefile tells `make' how to compile and link a program. 
    400422
    401423   In this chapter, we will discuss a simple makefile that describes
     
    412434Finally, if any source file has been recompiled, all the object files,
    413435whether newly made or saved from previous compilations, must be linked
    414 together to produce the new executable editor.
     436together to produce the new executable editor. 
    415437
    416438* Menu:
     
    427449File: make.info,  Node: Rule Introduction,  Next: Simple Makefile,  Prev: Introduction,  Up: Introduction
    428450
    429 What a Rule Looks Like
    430 ======================
     4512.1 What a Rule Looks Like
     452==========================
    431453
    432454A simple makefile consists of "rules" with the following shape:
     
    470492File: make.info,  Node: Simple Makefile,  Next: How Make Works,  Prev: Rule Introduction,  Up: Introduction
    471493
    472 A Simple Makefile
    473 =================
     4942.2 A Simple Makefile
     495=====================
    474496
    475497Here is a straightforward makefile that describes the way an executable
     
    485507             cc -o edit main.o kbd.o command.o display.o \
    486508                        insert.o search.o files.o utils.o
    487      
     509
    488510     main.o : main.c defs.h
    489511             cc -c main.c
     
    507529
    508530We split each long line into two lines using backslash-newline; this is
    509 like using one long line, but is easier to read.
     531like using one long line, but is easier to read. 
    510532
    511533   To use this makefile to create the executable file called `edit',
     
    535557prerequisites.  These shell commands say how to update the target file.
    536558A tab character must come at the beginning of every command line to
    537 distinguish commands lines from other lines in the makefile.  (Bear in
     559distinguish command lines from other lines in the makefile.  (Bear in
    538560mind that `make' does not know anything about how the commands work.
    539561It is up to you to supply commands that will update the target file
    540562properly.  All `make' does is execute the commands in the rule you have
    541 specified when the target file needs to be updated.)
     563specified when the target file needs to be updated.) 
    542564
    543565   The target `clean' is not a file, but merely the name of an action.
     
    550572called "phony targets".  *Note Phony Targets::, for information about
    551573this kind of target.  *Note Errors in Commands: Errors, to see how to
    552 cause `make' to ignore errors from `rm' or any other command.
     574cause `make' to ignore errors from `rm' or any other command. 
    553575
    554576
    555577File: make.info,  Node: How Make Works,  Next: Variables Simplify,  Prev: Simple Makefile,  Up: Introduction
    556578
    557 How `make' Processes a Makefile
    558 ===============================
     5792.3 How `make' Processes a Makefile
     580===================================
    559581
    560582By default, `make' starts with the first target (not targets whose
    561583names start with `.').  This is called the "default goal".  ("Goals"
    562 are the targets that `make' strives ultimately to update.  *Note
    563 Arguments to Specify the Goals: Goals.)
     584are the targets that `make' strives ultimately to update.    You can
     585override this behavior using the command line (*note Arguments to
     586Specify the Goals: Goals.) or with the `.DEFAULT_GOAL' special variable
     587(*note Other Special Variables: Special Variables.). 
    564588
    565589   In the simple example of the previous section, the default goal is to
     
    596620not exist, or if any of the object files are newer than it.  If an
    597621object file was just recompiled, it is now newer than `edit', so `edit'
    598 is relinked.
     622is relinked. 
    599623
    600624   Thus, if we change the file `insert.c' and run `make', `make' will
     
    607631File: make.info,  Node: Variables Simplify,  Next: make Deduces,  Prev: How Make Works,  Up: Introduction
    608632
    609 Variables Make Makefiles Simpler
    610 ================================
     6332.4 Variables Make Makefiles Simpler
     634====================================
    611635
    612636In our example, we had to list all the object files twice in the rule
     
    641665     objects = main.o kbd.o command.o display.o \
    642666               insert.o search.o files.o utils.o
    643      
     667
    644668     edit : $(objects)
    645669             cc -o edit $(objects)
     
    666690File: make.info,  Node: make Deduces,  Next: Combine By Prerequisite,  Prev: Variables Simplify,  Up: Introduction
    667691
    668 Letting `make' Deduce the Commands
    669 ==================================
     6922.5 Letting `make' Deduce the Commands
     693======================================
    670694
    671695It is not necessary to spell out the commands for compiling the
     
    686710     objects = main.o kbd.o command.o display.o \
    687711               insert.o search.o files.o utils.o
    688      
     712
    689713     edit : $(objects)
    690714             cc -o edit $(objects)
    691      
     715
    692716     main.o : defs.h
    693717     kbd.o : defs.h command.h
     
    698722     files.o : defs.h buffer.h command.h
    699723     utils.o : defs.h
    700      
     724
    701725     .PHONY : clean
    702726     clean :
     
    713737File: make.info,  Node: Combine By Prerequisite,  Next: Cleanup,  Prev: make Deduces,  Up: Introduction
    714738
    715 Another Style of Makefile
    716 =========================
     7392.6 Another Style of Makefile
     740=============================
    717741
    718742When the objects of a makefile are created only by implicit rules, an
     
    723747     objects = main.o kbd.o command.o display.o \
    724748               insert.o search.o files.o utils.o
    725      
     749
    726750     edit : $(objects)
    727751             cc -o edit $(objects)
    728      
     752
    729753     $(objects) : defs.h
    730754     kbd.o command.o files.o : command.h
     
    742766File: make.info,  Node: Cleanup,  Prev: Combine By Prerequisite,  Up: Introduction
    743767
    744 Rules for Cleaning the Directory
    745 ================================
     7682.7 Rules for Cleaning the Directory
     769====================================
    746770
    747771Compiling a program is not the only thing you might want to write rules
     
    781805File: make.info,  Node: Makefiles,  Next: Rules,  Prev: Introduction,  Up: Top
    782806
    783 Writing Makefiles
    784 *****************
     8073 Writing Makefiles
     808*******************
    785809
    786810The information that tells `make' how to recompile a system comes from
     
    799823                                  with another makefile.
    800824* Reading Makefiles::           How makefiles are parsed.
     825* Secondary Expansion::         How and when secondary expansion is performed.
    801826
    802827
    803828File: make.info,  Node: Makefile Contents,  Next: Makefile Names,  Prev: Makefiles,  Up: Makefiles
    804829
    805 What Makefiles Contain
    806 ======================
     8303.1 What Makefiles Contain
     831==========================
    807832
    808833Makefiles contain five kinds of things: "explicit rules", "implicit
     
    864889File: make.info,  Node: Makefile Names,  Next: Include,  Prev: Makefile Contents,  Up: Makefiles
    865890
    866 What Name to Give Your Makefile
    867 ===============================
     8913.2 What Name to Give Your Makefile
     892===================================
    868893
    869894By default, when `make' looks for the makefile, it tries the following
    870 names, in order: `GNUmakefile', `makefile' and `Makefile'.
     895names, in order: `GNUmakefile', `makefile' and `Makefile'. 
    871896
    872897   Normally you should call your makefile either `makefile' or
     
    891916concatenated in the order specified.  The default makefile names
    892917`GNUmakefile', `makefile' and `Makefile' are not checked automatically
    893 if you specify `-f' or `--file'.
     918if you specify `-f' or `--file'. 
    894919
    895920
    896921File: make.info,  Node: Include,  Next: MAKEFILES Variable,  Prev: Makefile Names,  Up: Makefiles
    897922
    898 Including Other Makefiles
    899 =========================
     9233.3 Including Other Makefiles
     924=============================
    900925
    901926The `include' directive tells `make' to suspend reading the current
     
    905930     include FILENAMES...
    906931
    907 FILENAMES can contain shell file name patterns.
     932FILENAMES can contain shell file name patterns.  If FILENAMES is empty,
     933nothing is included and no error is printed. 
    908934
    909935   Extra spaces are allowed and ignored at the beginning of the line,
     
    942968than that of somehow appending the prerequisites to the end of the main
    943969makefile as has been traditionally done with other versions of `make'.
    944 *Note Automatic Prerequisites::.
     970*Note Automatic Prerequisites::. 
    945971
    946972   If the specified name does not start with a slash, and the file is
     
    9801006File: make.info,  Node: MAKEFILES Variable,  Next: MAKEFILE_LIST Variable,  Prev: Include,  Up: Makefiles
    9811007
    982 The Variable `MAKEFILES'
    983 ========================
     10083.4 The Variable `MAKEFILES'
     1009============================
    9841010
    9851011If the environment variable `MAKEFILES' is defined, `make' considers
     
    10091035File: make.info,  Node: MAKEFILE_LIST Variable,  Next: Special Variables,  Prev: MAKEFILES Variable,  Up: Makefiles
    10101036
    1011 The Variable `MAKEFILE_LIST'
    1012 ============================
     10373.5 The Variable `MAKEFILE_LIST'
     1038================================
    10131039
    10141040As `make' reads various makefiles, including any obtained from the
     
    10251051   If a makefile named `Makefile' has this content:
    10261052
    1027      name1 := $(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST))
    1028      
     1053     name1 := $(lastword $(MAKEFILE_LIST))
     1054
    10291055     include inc.mk
    1030      
    1031      name2 := $(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST))
    1032      
     1056
     1057     name2 := $(lastword $(MAKEFILE_LIST))
     1058
    10331059     all:
    10341060             @echo name1 = $(name1)
     
    10481074File: make.info,  Node: Special Variables,  Next: Remaking Makefiles,  Prev: MAKEFILE_LIST Variable,  Up: Makefiles
    10491075
    1050 Other Special Variables
    1051 =======================
    1052 
    1053 GNU `make' also supports a special variable.  Note that any value you
    1054 assign to this variable will be ignored; it will always return its
    1055 special value.
    1056 
    1057    The first special variable is `.VARIABLES'.  When expanded, the
    1058 value consists of a list of the _names_ of all global variables defined
    1059 in all makefiles read up until that point.  This includes variables
    1060 which have empty values, as well as built-in variables (*note Variables
    1061 Used by Implicit Rules: Implicit Variables.), but does not include any
    1062 variables which are only defined in a target-specific context.
     10763.6 Other Special Variables
     1077===========================
     1078
     1079GNU `make' also supports other special variables.  Unless otherwise
     1080documented here, these values lose their special properties if they are
     1081set by a makefile or on the command line.
     1082
     1083`.DEFAULT_GOAL'
     1084     Sets the default goal to be used if no targets were specified on
     1085     the command line (*note Arguments to Specify the Goals: Goals.).
     1086     The `.DEFAULT_GOAL' variable allows you to discover the current
     1087     default goal, restart the default goal selection algorithm by
     1088     clearing its value, or to explicitly set the default goal.  The
     1089     following example illustrates these cases:
     1090
     1091          # Query the default goal.
     1092          ifeq ($(.DEFAULT_GOAL),)
     1093            $(warning no default goal is set)
     1094          endif
     1095
     1096          .PHONY: foo
     1097          foo: ; @echo $@
     1098
     1099          $(warning default goal is $(.DEFAULT_GOAL))
     1100
     1101          # Reset the default goal.
     1102          .DEFAULT_GOAL :=
     1103
     1104          .PHONY: bar
     1105          bar: ; @echo $@
     1106
     1107          $(warning default goal is $(.DEFAULT_GOAL))
     1108
     1109          # Set our own.
     1110          .DEFAULT_GOAL := foo
     1111
     1112     This makefile prints:
     1113
     1114          no default goal is set
     1115          default goal is foo
     1116          default goal is bar
     1117          foo
     1118
     1119     Note that assigning more than one target name to `.DEFAULT_GOAL' is
     1120     illegal and will result in an error.
     1121
     1122`MAKE_RESTARTS'
     1123     This variable is set only if this instance of `make' has restarted
     1124     (*note How Makefiles Are Remade: Remaking Makefiles.): it will
     1125     contain the number of times this instance has restarted.  Note
     1126     this is not the same as recursion (counted by the `MAKELEVEL'
     1127     variable).  You should not set, modify, or export this variable.
     1128
     1129`.VARIABLES'
     1130     Expands to a list of the _names_ of all global variables defined
     1131     so far.  This includes variables which have empty values, as well
     1132     as built-in variables (*note Variables Used by Implicit Rules:
     1133     Implicit Variables.), but does not include any variables which are
     1134     only defined in a target-specific context.  Note that any value
     1135     you assign to this variable will be ignored; it will always return
     1136     its special value.
     1137
     1138`.FEATURES'
     1139     Expands to a list of special features supported by this version of
     1140     `make'.  Possible values include:
     1141
     1142    `archives'
     1143          Supports `ar' (archive) files using special filename syntax.
     1144          *Note Using `make' to Update Archive Files: Archives.
     1145
     1146    `check-symlink'
     1147          Supports the `-L' (`--check-symlink-times') flag.  *Note
     1148          Summary of Options: Options Summary.
     1149
     1150    `else-if'
     1151          Supports "else if" non-nested conditionals.  *Note Syntax of
     1152          Conditionals: Conditional Syntax.
     1153
     1154    `jobserver'
     1155          Supports "job server" enhanced parallel builds.  *Note
     1156          Parallel Execution: Parallel.
     1157
     1158    `second-expansion'
     1159          Supports secondary expansion of prerequisite lists.
     1160
     1161    `order-only'
     1162          Supports order-only prerequisites.  *Note Types of
     1163          Prerequisites: Prerequisite Types.
     1164
     1165    `target-specific'
     1166          Supports target-specific and pattern-specific variable
     1167          assignments.  *Note Target-specific Variable Values:
     1168          Target-specific.
     1169
     1170
     1171`.INCLUDE_DIRS'
     1172     Expands to a list of directories that `make' searches for included
     1173     makefiles (*note Including Other Makefiles: Include.).
     1174
    10631175
    10641176
    10651177File: make.info,  Node: Remaking Makefiles,  Next: Overriding Makefiles,  Prev: Special Variables,  Up: Makefiles
    10661178
    1067 How Makefiles Are Remade
    1068 ========================
     11793.7 How Makefiles Are Remade
     1180============================
    10691181
    10701182Sometimes makefiles can be remade from other files, such as RCS or SCCS
     
    11031215   If you do not specify any makefiles to be read with `-f' or `--file'
    11041216options, `make' will try the default makefile names; *note What Name to
    1105 Give Your Makefile: Makefile Names..  Unlike makefiles explicitly
     1217Give Your Makefile: Makefile Names.  Unlike makefiles explicitly
    11061218requested with `-f' or `--file' options, `make' is not certain that
    11071219these makefiles should exist.  However, if a default makefile does not
     
    11431255File: make.info,  Node: Overriding Makefiles,  Next: Reading Makefiles,  Prev: Remaking Makefiles,  Up: Makefiles
    11441256
    1145 Overriding Part of Another Makefile
    1146 ===================================
     12573.8 Overriding Part of Another Makefile
     1258=======================================
    11471259
    11481260Sometimes it is useful to have a makefile that is mostly just like
     
    11641276     foo:
    11651277             frobnicate > foo
    1166      
     1278
    11671279     %: force
    11681280             @$(MAKE) -f Makefile $@
     
    11861298
    11871299
    1188 File: make.info,  Node: Reading Makefiles,  Prev: Overriding Makefiles,  Up: Makefiles
    1189 
    1190 How `make' Reads a Makefile
    1191 ===========================
     1300File: make.info,  Node: Reading Makefiles,  Next: Secondary Expansion,  Prev: Overriding Makefiles,  Up: Makefiles
     1301
     13023.9 How `make' Reads a Makefile
     1303===============================
    11921304
    11931305GNU `make' does its work in two distinct phases.  During the first
     
    12241336     IMMEDIATE := IMMEDIATE
    12251337     IMMEDIATE += DEFERRED or IMMEDIATE
    1226      
     1338
    12271339     define IMMEDIATE
    12281340       DEFERRED
     
    12381350All instances of conditional syntax are parsed immediately, in their
    12391351entirety; this includes the `ifdef', `ifeq', `ifndef', and `ifneq'
    1240 forms.
     1352forms.  Of course this means that automatic variables cannot be used in
     1353conditional statements, as automatic variables are not set until the
     1354command script for that rule is invoked.  If you need to use automatic
     1355variables in a conditional you _must_ use shell conditional syntax, in
     1356your command script proper, for these tests, not `make' conditionals.
    12411357
    12421358Rule Definition
     
    12541370
    12551371
     1372File: make.info,  Node: Secondary Expansion,  Prev: Reading Makefiles,  Up: Makefiles
     1373
     13743.10 Secondary Expansion
     1375========================
     1376
     1377In the previous section we learned that GNU `make' works in two
     1378distinct phases: a read-in phase and a target-update phase (*note How
     1379`make' Reads a Makefile: Reading Makefiles.).  GNU make also has the
     1380ability to enable a _second expansion_ of the prerequisites (only) for
     1381some or all targets defined in the makefile.  In order for this second
     1382expansion to occur, the special target `.SECONDEXPANSION' must be
     1383defined before the first prerequisite list that makes use of this
     1384feature.
     1385
     1386   If that special target is defined then in between the two phases
     1387mentioned above, right at the end of the read-in phase, all the
     1388prerequisites of the targets defined after the special target are
     1389expanded a _second time_.  In most circumstances this secondary
     1390expansion will have no effect, since all variable and function
     1391references will have been expanded during the initial parsing of the
     1392makefiles.  In order to take advantage of the secondary expansion phase
     1393of the parser, then, it's necessary to _escape_ the variable or
     1394function reference in the makefile.  In this case the first expansion
     1395merely un-escapes the reference but doesn't expand it, and expansion is
     1396left to the secondary expansion phase.  For example, consider this
     1397makefile:
     1398
     1399     .SECONDEXPANSION:
     1400     ONEVAR = onefile
     1401     TWOVAR = twofile
     1402     myfile: $(ONEVAR) $$(TWOVAR)
     1403
     1404   After the first expansion phase the prerequisites list of the
     1405`myfile' target will be `onefile' and `$(TWOVAR)'; the first
     1406(unescaped) variable reference to ONEVAR is expanded, while the second
     1407(escaped) variable reference is simply unescaped, without being
     1408recognized as a variable reference.  Now during the secondary expansion
     1409the first word is expanded again but since it contains no variable or
     1410function references it remains the static value `onefile', while the
     1411second word is now a normal reference to the variable TWOVAR, which is
     1412expanded to the value `twofile'.  The final result is that there are
     1413two prerequisites, `onefile' and `twofile'.
     1414
     1415   Obviously, this is not a very interesting case since the same result
     1416could more easily have been achieved simply by having both variables
     1417appear, unescaped, in the prerequisites list.  One difference becomes
     1418apparent if the variables are reset; consider this example:
     1419
     1420     .SECONDEXPANSION:
     1421     AVAR = top
     1422     onefile: $(AVAR)
     1423     twofile: $$(AVAR)
     1424     AVAR = bottom
     1425
     1426   Here the prerequisite of `onefile' will be expanded immediately, and
     1427resolve to the value `top', while the prerequisite of `twofile' will
     1428not be full expanded until the secondary expansion and yield a value of
     1429`bottom'.
     1430
     1431   This is marginally more exciting, but the true power of this feature
     1432only becomes apparent when you discover that secondary expansions
     1433always take place within the scope of the automatic variables for that
     1434target.  This means that you can use variables such as `$@', `$*', etc.
     1435during the second expansion and they will have their expected values,
     1436just as in the command script.  All you have to do is defer the
     1437expansion by escaping the `$'.  Also, secondary expansion occurs for
     1438both explicit and implicit (pattern) rules.  Knowing this, the possible
     1439uses for this feature increase dramatically.  For example:
     1440
     1441     .SECONDEXPANSION:
     1442     main_OBJS := main.o try.o test.o
     1443     lib_OBJS := lib.o api.o
     1444
     1445     main lib: $$($$@_OBJS)
     1446
     1447   Here, after the initial expansion the prerequisites of both the
     1448`main' and `lib' targets will be `$($@_OBJS)'.  During the secondary
     1449expansion, the `$@' variable is set to the name of the target and so
     1450the expansion for the `main' target will yield `$(main_OBJS)', or
     1451`main.o try.o test.o', while the secondary expansion for the `lib'
     1452target will yield `$(lib_OBJS)', or `lib.o api.o'.
     1453
     1454   You can also mix functions here, as long as they are properly
     1455escaped:
     1456
     1457     main_SRCS := main.c try.c test.c
     1458     lib_SRCS := lib.c api.c
     1459
     1460     .SECONDEXPANSION:
     1461     main lib: $$(patsubst %.c,%.o,$$($$@_SRCS))
     1462
     1463   This version allows users to specify source files rather than object
     1464files, but gives the same resulting prerequisites list as the previous
     1465example.
     1466
     1467   Evaluation of automatic variables during the secondary expansion
     1468phase, especially of the target name variable `$$@', behaves similarly
     1469to evaluation within command scripts.  However, there are some subtle
     1470differences and "corner cases" which come into play for the different
     1471types of rule definitions that `make' understands.  The subtleties of
     1472using the different automatic variables are described below.
     1473
     1474Secondary Expansion of Explicit Rules
     1475-------------------------------------
     1476
     1477During the secondary expansion of explicit rules, `$$@' and `$$%'
     1478evaluate, respectively, to the file name of the target and, when the
     1479target is an archive member, the target member name.  The `$$<'
     1480variable evaluates to the first prerequisite in the first rule for this
     1481target.  `$$^' and `$$+' evaluate to the list of all prerequisites of
     1482rules _that have already appeared_ for the same target (`$$+' with
     1483repetitions and `$$^' without).  The following example will help
     1484illustrate these behaviors:
     1485
     1486     .SECONDEXPANSION:
     1487
     1488     foo: foo.1 bar.1 $$< $$^ $$+    # line #1
     1489
     1490     foo: foo.2 bar.2 $$< $$^ $$+    # line #2
     1491
     1492     foo: foo.3 bar.3 $$< $$^ $$+    # line #3
     1493
     1494   In the first prerequisite list, all three variables (`$$<', `$$^',
     1495and `$$+') expand to the empty string.  In the second, they will have
     1496values `foo.1', `foo.1 bar.1', and `foo.1 bar.1' respectively.  In the
     1497third they will have values `foo.1', `foo.1 bar.1 foo.2 bar.2', and
     1498`foo.1 bar.1 foo.2 bar.2' respectively.
     1499
     1500   Rules undergo secondary expansion in makefile order, except that the
     1501rule with the command script is always evaluated last.
     1502
     1503   The variables `$$?' and `$$*' are not available and expand to the
     1504empty string.
     1505
     1506Secondary Expansion of Static Pattern Rules
     1507-------------------------------------------
     1508
     1509Rules for secondary expansion of static pattern rules are identical to
     1510those for explicit rules, above, with one exception: for static pattern
     1511rules the `$$*' variable is set to the pattern stem.  As with explicit
     1512rules, `$$?' is not available and expands to the empty string.
     1513
     1514Secondary Expansion of Implicit Rules
     1515-------------------------------------
     1516
     1517As `make' searches for an implicit rule, it substitutes the stem and
     1518then performs secondary expansion for every rule with a matching target
     1519pattern.  The value of the automatic variables is derived in the same
     1520fashion as for static pattern rules.  As an example:
     1521
     1522     .SECONDEXPANSION:
     1523
     1524     foo: bar
     1525
     1526     foo foz: fo%: bo%
     1527
     1528     %oo: $$< $$^ $$+ $$*
     1529
     1530   When the implicit rule is tried for target `foo', `$$<' expands to
     1531`bar', `$$^' expands to `bar boo', `$$+' also expands to `bar boo', and
     1532`$$*' expands to `f'.
     1533
     1534   Note that the directory prefix (D), as described in *Note Implicit
     1535Rule Search Algorithm: Implicit Rule Search, is appended (after
     1536expansion) to all the patterns in the prerequisites list.  As an
     1537example:
     1538
     1539     .SECONDEXPANSION:
     1540
     1541     /tmp/foo.o:
     1542
     1543     %.o: $$(addsuffix /%.c,foo bar) foo.h
     1544
     1545   The prerequisite list after the secondary expansion and directory
     1546prefix reconstruction will be `/tmp/foo/foo.c /tmp/var/bar/foo.c
     1547foo.h'.  If you are not interested in this reconstruction, you can use
     1548`$$*' instead of `%' in the prerequisites list.
     1549
     1550
    12561551File: make.info,  Node: Rules,  Next: Commands,  Prev: Makefiles,  Up: Top
    12571552
    1258 Writing Rules
    1259 *************
     15534 Writing Rules
     1554***************
    12601555
    12611556A "rule" appears in the makefile and says when and how to remake
     
    12881583* Phony Targets::               Using a target that is not a real file's name.
    12891584* Force Targets::               You can use a target without commands
    1290                                   or prerequisites to mark other
    1291                                   targets as phony.
     1585                                  or prerequisites to mark other targets
     1586                                  as phony.
    12921587* Empty Targets::               When only the date matters and the
    12931588                                  files are empty.
     
    13061601File: make.info,  Node: Rule Example,  Next: Rule Syntax,  Prev: Rules,  Up: Rules
    13071602
    1308 Rule Example
    1309 ============
     16034.1 Rule Example
     1604================
    13101605
    13111606Here is an example of a rule:
     
    13321627File: make.info,  Node: Rule Syntax,  Next: Prerequisite Types,  Prev: Rule Example,  Up: Rules
    13331628
    1334 Rule Syntax
    1335 ===========
     16294.2 Rule Syntax
     1630===============
    13361631
    13371632In general, a rule looks like this:
     
    13581653appear on the line after the prerequisites, with a tab character, or may
    13591654appear on the same line, with a semicolon.  Either way, the effect is
    1360 the same.  *Note Writing the Commands in Rules: Commands.
    1361 
    1362    Because dollar signs are used to start variable references, if you
    1363 really want a dollar sign in a rule you must write two of them, `$$'
    1364 (*note How to Use Variables: Using Variables.).  You may split a long
    1365 line by inserting a backslash followed by a newline, but this is not
    1366 required, as `make' places no limit on the length of a line in a
    1367 makefile.
     1655the same.  There are other differences in the syntax of command lines.
     1656*Note Writing the Commands in Rules: Commands.
     1657
     1658   Because dollar signs are used to start `make' variable references,
     1659if you really want a dollar sign in a target or prerequisite you must
     1660write two of them, `$$' (*note How to Use Variables: Using Variables.).
     1661If you have enabled secondary expansion (*note Secondary Expansion::)
     1662and you want a literal dollar sign in the prerequisites lise, you must
     1663actually write _four_ dollar signs (`$$$$').
     1664
     1665   You may split a long line by inserting a backslash followed by a
     1666newline, but this is not required, as `make' places no limit on the
     1667length of a line in a makefile.
    13681668
    13691669   A rule tells `make' two things: when the targets are out of date,
     
    13871687File: make.info,  Node: Prerequisite Types,  Next: Wildcards,  Prev: Rule Syntax,  Up: Rules
    13881688
    1389 Types of Prerequisites
    1390 ======================
     16894.3 Types of Prerequisites
     1690==========================
    13911691
    13921692There are actually two different types of prerequisites understood by
     
    14231723File: make.info,  Node: Wildcards,  Next: Directory Search,  Prev: Prerequisite Types,  Up: Rules
    14241724
    1425 Using Wildcard Characters in File Names
    1426 =======================================
     17254.4 Using Wildcard Characters in File Names
     1726===========================================
    14271727
    14281728A single file name can specify many files using "wildcard characters".
     
    14401740simulated by setting the environment variable HOME.
    14411741
    1442    Wildcard expansion happens automatically in targets, in
    1443 prerequisites, and in commands (where the shell does the expansion).
    1444 In other contexts, wildcard expansion happens only if you request it
    1445 explicitly with the `wildcard' function.
     1742   Wildcard expansion is performed by `make' automatically in targets
     1743and in prerequisites.  In commands the shell is responsible for
     1744wildcard expansion.  In other contexts, wildcard expansion happens only
     1745if you request it explicitly with the `wildcard' function.
    14461746
    14471747   The special significance of a wildcard character can be turned off by
     
    14591759File: make.info,  Node: Wildcard Examples,  Next: Wildcard Pitfall,  Prev: Wildcards,  Up: Wildcards
    14601760
    1461 Wildcard Examples
    1462 -----------------
     17614.4.1 Wildcard Examples
     1762-----------------------
    14631763
    14641764Wildcards can be used in the commands of a rule, where they are expanded
     
    14991799File: make.info,  Node: Wildcard Pitfall,  Next: Wildcard Function,  Prev: Wildcard Examples,  Up: Wildcards
    15001800
    1501 Pitfalls of Using Wildcards
    1502 ---------------------------
     18014.4.2 Pitfalls of Using Wildcards
     1802---------------------------------
    15031803
    15041804Now here is an example of a naive way of using wildcard expansion, that
     
    15081808
    15091809     objects = *.o
    1510      
     1810
    15111811     foo : $(objects)
    15121812             cc -o foo $(CFLAGS) $(objects)
     
    15421842File: make.info,  Node: Wildcard Function,  Prev: Wildcard Pitfall,  Up: Wildcards
    15431843
    1544 The Function `wildcard'
    1545 -----------------------
     18444.4.3 The Function `wildcard'
     1845-----------------------------
    15461846
    15471847Wildcard expansion happens automatically in rules.  But wildcard
     
    15781878
    15791879     objects := $(patsubst %.c,%.o,$(wildcard *.c))
    1580      
     1880
    15811881     foo : $(objects)
    15821882             cc -o foo $(objects)
     
    15901890File: make.info,  Node: Directory Search,  Next: Phony Targets,  Prev: Wildcards,  Up: Rules
    15911891
    1592 Searching Directories for Prerequisites
    1593 =======================================
     18924.5 Searching Directories for Prerequisites
     1893===========================================
    15941894
    15951895For large systems, it is often desirable to put sources in a separate
     
    16141914File: make.info,  Node: General Search,  Next: Selective Search,  Prev: Directory Search,  Up: Directory Search
    16151915
    1616 `VPATH': Search Path for All Prerequisites
    1617 ------------------------------------------
     19164.5.1 `VPATH': Search Path for All Prerequisites
     1917------------------------------------------------
    16181918
    16191919The value of the `make' variable `VPATH' specifies a list of
     
    16581958File: make.info,  Node: Selective Search,  Next: Search Algorithm,  Prev: General Search,  Up: Directory Search
    16591959
    1660 The `vpath' Directive
    1661 ---------------------
     19604.5.2 The `vpath' Directive
     1961---------------------------
    16621962
    16631963Similar to the `VPATH' variable, but more selective, is the `vpath'
     
    17372037File: make.info,  Node: Search Algorithm,  Next: Commands/Search,  Prev: Selective Search,  Up: Directory Search
    17382038
    1739 How Directory Searches are Performed
    1740 ------------------------------------
     20394.5.3 How Directory Searches are Performed
     2040------------------------------------------
    17412041
    17422042When a prerequisite is found through directory search, regardless of
     
    17952095File: make.info,  Node: Commands/Search,  Next: Implicit/Search,  Prev: Search Algorithm,  Up: Directory Search
    17962096
    1797 Writing Shell Commands with Directory Search
    1798 --------------------------------------------
     20974.5.4 Writing Shell Commands with Directory Search
     2098--------------------------------------------------
    17992099
    18002100When a prerequisite is found in another directory through directory
     
    18162116compilation by implicit rules; we use it here for consistency so it will
    18172117affect all C compilations uniformly; *note Variables Used by Implicit
    1818 Rules: Implicit Variables..)
     2118Rules: Implicit Variables.)
    18192119
    18202120   Often the prerequisites include header files as well, which you do
     
    18292129File: make.info,  Node: Implicit/Search,  Next: Libraries/Search,  Prev: Commands/Search,  Up: Directory Search
    18302130
    1831 Directory Search and Implicit Rules
    1832 -----------------------------------
     21314.5.5 Directory Search and Implicit Rules
     2132-----------------------------------------
    18332133
    18342134The search through the directories specified in `VPATH' or with `vpath'
     
    18502150File: make.info,  Node: Libraries/Search,  Prev: Implicit/Search,  Up: Directory Search
    18512151
    1852 Directory Search for Link Libraries
    1853 -----------------------------------
     21524.5.6 Directory Search for Link Libraries
     2153-----------------------------------------
    18542154
    18552155Directory search applies in a special way to libraries used with the
     
    18892189word in the list will be used.
    18902190
    1891    The default value for `.LIBPATTERNS' is "`lib%.so lib%.a'", which
     2191   The default value for `.LIBPATTERNS' is `lib%.so lib%.a', which
    18922192provides the default behavior described above.
    18932193
     
    18982198File: make.info,  Node: Phony Targets,  Next: Force Targets,  Prev: Directory Search,  Up: Rules
    18992199
    1900 Phony Targets
    1901 =============
     22004.6 Phony Targets
     2201=================
    19022202
    19032203A phony target is one that is not really the name of a file.  It is
     
    19152215Because the `rm' command does not create a file named `clean', probably
    19162216no such file will ever exist.  Therefore, the `rm' command will be
    1917 executed every time you say `make clean'.
     2217executed every time you say `make clean'. 
    19182218
    19192219   The phony target will cease to work if anything ever does create a
     
    19452245   Another example of the usefulness of phony targets is in conjunction
    19462246with recursive invocations of `make' (for more information, see *Note
    1947 Recursive Use of `make': Recursion).  In this case the makefile will
     2247Recursive Use of `make': Recursion.).  In this case the makefile will
    19482248often contain a variable which lists a number of subdirectories to be
    19492249built.  One way to handle this is with one rule whose command is a
     
    19512251
    19522252     SUBDIRS = foo bar baz
    1953      
     2253
    19542254     subdirs:
    19552255             for dir in $(SUBDIRS); do \
     
    19632263it will do so even if `make' is invoked with the `-k' option, which is
    19642264unfortunate.  Second, and perhaps more importantly, you cannot take
    1965 advantage of the parallel build capabilities of make using this method,
    1966 since there is only one rule.
     2265advantage of `make''s ability to build targets in parallel (*note
     2266Parallel Execution: Parallel.), since there is only one rule.
    19672267
    19682268   By declaring the subdirectories as phony targets (you must do this as
     
    19712271
    19722272     SUBDIRS = foo bar baz
    1973      
     2273
    19742274     .PHONY: subdirs $(SUBDIRS)
    1975      
     2275
    19762276     subdirs: $(SUBDIRS)
    1977      
     2277
    19782278     $(SUBDIRS):
    19792279             $(MAKE) -C $@
    1980      
     2280
    19812281     foo: baz
    19822282
     
    20022302     all : prog1 prog2 prog3
    20032303     .PHONY : all
    2004      
     2304
    20052305     prog1 : prog1.o utils.o
    20062306             cc -o prog1 prog1.o utils.o
    2007      
     2307
    20082308     prog2 : prog2.o
    20092309             cc -o prog2 prog2.o
    2010      
     2310
    20112311     prog3 : prog3.o sort.o utils.o
    20122312             cc -o prog3 prog3.o sort.o utils.o
    20132313
    20142314Now you can say just `make' to remake all three programs, or specify as
    2015 arguments the ones to remake (as in `make prog1 prog3').
     2315arguments the ones to remake (as in `make prog1 prog3').  Phoniness is
     2316not inherited: the prerequisites of a phony target are not themselves
     2317phony, unless explicitly declared to be so.
    20162318
    20172319   When one phony target is a prerequisite of another, it serves as a
     
    20202322
    20212323     .PHONY: cleanall cleanobj cleandiff
    2022      
     2324
    20232325     cleanall : cleanobj cleandiff
    20242326             rm program
    2025      
     2327
    20262328     cleanobj :
    20272329             rm *.o
    2028      
     2330
    20292331     cleandiff :
    20302332             rm *.diff
     
    20332335File: make.info,  Node: Force Targets,  Next: Empty Targets,  Prev: Phony Targets,  Up: Rules
    20342336
    2035 Rules without Commands or Prerequisites
    2036 =======================================
     23374.7 Rules without Commands or Prerequisites
     2338===========================================
    20372339
    20382340If a rule has no prerequisites or commands, and the target of the rule
     
    20622364File: make.info,  Node: Empty Targets,  Next: Special Targets,  Prev: Force Targets,  Up: Rules
    20632365
    2064 Empty Target Files to Record Events
    2065 ===================================
     23664.8 Empty Target Files to Record Events
     2367=======================================
    20662368
    20672369The "empty target" is a variant of the phony target; it is used to hold
     
    20842386             lpr -p $?
    20852387             touch print
    2086 
     2388   
    20872389With this rule, `make print' will execute the `lpr' command if either
    20882390source file has changed since the last `make print'.  The automatic
     
    20932395File: make.info,  Node: Special Targets,  Next: Multiple Targets,  Prev: Empty Targets,  Up: Rules
    20942396
    2095 Special Built-in Target Names
    2096 =============================
     23974.9 Special Built-in Target Names
     2398=================================
    20972399
    20982400Certain names have special meanings if they appear as targets.
     
    21472449     intermediate).
    21482450
     2451`.SECONDEXPANSION'
     2452     If `.SECONDEXPANSION' is mentioned as a target anywhere in the
     2453     makefile, then all prerequisite lists defined _after_ it appears
     2454     will be expanded a second time after all makefiles have been read
     2455     in.  *Note Secondary Expansion: Secondary Expansion.
     2456
     2457     The prerequisites of the special target `.SUFFIXES' are the list
     2458     of suffixes to be used in checking for suffix rules.  *Note
     2459     Old-Fashioned Suffix Rules: Suffix Rules.
     2460
    21492461`.DELETE_ON_ERROR'
    21502462     If `.DELETE_ON_ERROR' is mentioned as a target anywhere in the
     
    22332545File: make.info,  Node: Multiple Targets,  Next: Multiple Rules,  Prev: Special Targets,  Up: Rules
    22342546
    2235 Multiple Targets in a Rule
    2236 ==========================
     25474.10 Multiple Targets in a Rule
     2548===============================
    22372549
    22382550A rule with multiple targets is equivalent to writing many rules, each
     
    22582570          bigoutput littleoutput : text.g
    22592571                  generate text.g -$(subst output,,$@) > $@
    2260 
     2572     
    22612573     is equivalent to
    22622574
     
    22802592File: make.info,  Node: Multiple Rules,  Next: Static Pattern,  Prev: Multiple Targets,  Up: Rules
    22812593
    2282 Multiple Rules for One Target
    2283 =============================
     25944.11 Multiple Rules for One Target
     2595==================================
    22842596
    22852597One file can be the target of several rules.  All the prerequisites
     
    23312643File: make.info,  Node: Static Pattern,  Next: Double-Colon,  Prev: Multiple Rules,  Up: Rules
    23322644
    2333 Static Pattern Rules
    2334 ====================
     26454.12 Static Pattern Rules
     2646=========================
    23352647
    23362648"Static pattern rules" are rules which specify multiple targets and
     
    23482660File: make.info,  Node: Static Usage,  Next: Static versus Implicit,  Prev: Static Pattern,  Up: Static Pattern
    23492661
    2350 Syntax of Static Pattern Rules
    2351 ------------------------------
     26624.12.1 Syntax of Static Pattern Rules
     2663-------------------------------------
    23522664
    23532665Here is the syntax of a static pattern rule:
     
    23972709
    23982710     objects = foo.o bar.o
    2399      
     2711
    24002712     all: $(objects)
    2401      
     2713
    24022714     $(objects): %.o: %.c
    24032715             $(CC) -c $(CFLAGS) $< -o $@
     
    24142726
    24152727     files = foo.elc bar.o lose.o
    2416      
     2728
    24172729     $(filter %.o,$(files)): %.o: %.c
    24182730             $(CC) -c $(CFLAGS) $< -o $@
     
    24262738from `foo.el'.
    24272739
    2428    Another example shows how to use `$*' in static pattern rules:
     2740   Another example shows how to use `$*' in static pattern rules: 
    24292741
    24302742     bigoutput littleoutput : %output : text.g
     
    24372749File: make.info,  Node: Static versus Implicit,  Prev: Static Usage,  Up: Static Pattern
    24382750
    2439 Static Pattern Rules versus Implicit Rules
    2440 ------------------------------------------
     27514.12.2 Static Pattern Rules versus Implicit Rules
     2752-------------------------------------------------
    24412753
    24422754A static pattern rule has much in common with an implicit rule defined
     
    24742786File: make.info,  Node: Double-Colon,  Next: Automatic Prerequisites,  Prev: Static Pattern,  Up: Rules
    24752787
    2476 Double-Colon Rules
    2477 ==================
     27884.13 Double-Colon Rules
     2789=======================
    24782790
    24792791"Double-colon" rules are rules written with `::' instead of `:' after
     
    25112823File: make.info,  Node: Automatic Prerequisites,  Prev: Double-Colon,  Up: Rules
    25122824
    2513 Generating Prerequisites Automatically
    2514 ======================================
     28254.14 Generating Prerequisites Automatically
     2826===========================================
    25152827
    25162828In the makefile for a program, many of the rules you need to write often
     
    25242836would have to write dozens of such rules in your makefile.  And, you
    25252837must always be very careful to update the makefile every time you add
    2526 or remove an `#include'.
     2838or remove an `#include'. 
    25272839
    25282840   To avoid this hassle, most modern C compilers can write these rules
     
    25432855makefile, so it can never be considered an intermediate file by implicit
    25442856rule search.  This means that `make' won't ever remove the file after
    2545 using it; *note Chains of Implicit Rules: Chained Rules..
     2857using it; *note Chains of Implicit Rules: Chained Rules.
    25462858
    25472859   With old `make' programs, it was traditional practice to use this
     
    25672879
    25682880     %.d: %.c
    2569              
     2881             @set -e; rm -f $@; \
    25702882              $(CC) -M $(CPPFLAGS) $< > $@.$$$$; \
    25712883              sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; \
     
    25742886*Note Pattern Rules::, for information on defining pattern rules.  The
    25752887`-e' flag to the shell causes it to exit immediately if the `$(CC)'
    2576 command (or any other command) fails (exits with a nonzero status).
     2888command (or any other command) fails (exits with a nonzero status). 
    25772889
    25782890   With the GNU C compiler, you may wish to use the `-MM' flag instead
     
    25992911
    26002912     sources = foo.c bar.c
    2601      
     2913
    26022914     include $(sources:.c=.d)
    26032915
     
    26102922
    26112923   Note that the `.d' files contain target definitions; you should be
    2612 sure to place the `include' directive _after_ the first, default target
     2924sure to place the `include' directive _after_ the first, default goal
    26132925in your makefiles or run the risk of having a random object file become
    2614 the default target.  *Note How Make Works::.
     2926the default goal.  *Note How Make Works::.
    26152927
    26162928
    26172929File: make.info,  Node: Commands,  Next: Using Variables,  Prev: Rules,  Up: Top
    26182930
    2619 Writing the Commands in Rules
    2620 *****************************
    2621 
    2622 The commands of a rule consist of shell command lines to be executed one
    2623 by one.  Each command line must start with a tab, except that the first
    2624 command line may be attached to the target-and-prerequisites line with a
    2625 semicolon in between.  Blank lines and lines of just comments may appear
    2626 among the command lines; they are ignored.  (But beware, an apparently
    2627 "blank" line that begins with a tab is _not_ blank!  It is an empty
    2628 command; *note Empty Commands::.)
     29315 Writing the Commands in Rules
     2932*******************************
     2933
     2934The commands of a rule consist of one or more shell command lines to be
     2935executed, one at a time, in the order they appear.  Typically, the
     2936result of executing these commands is that the target of the rule is
     2937brought up to date.
    26292938
    26302939   Users use many different shell programs, but commands in makefiles
     
    26322941otherwise.  *Note Command Execution: Execution.
    26332942
    2634    The shell that is in use determines whether comments can be written
    2635 on command lines, and what syntax they use.  When the shell is
    2636 `/bin/sh', a `#' starts a comment that extends to the end of the line.
    2637 The `#' does not have to be at the beginning of a line.  Text on a line
    2638 before a `#' is not part of the comment.
    2639 
    26402943* Menu:
    26412944
     2945* Command Syntax::              Command syntax features and pitfalls.
    26422946* Echoing::                     How to control when commands are echoed.
    26432947* Execution::                   How commands are executed.
     
    26502954
    26512955
    2652 File: make.info,  Node: Echoing,  Next: Execution,  Prev: Commands,  Up: Commands
    2653 
    2654 Command Echoing
    2655 ===============
     2956File: make.info,  Node: Command Syntax,  Next: Echoing,  Prev: Commands,  Up: Commands
     2957
     29585.1 Command Syntax
     2959==================
     2960
     2961Makefiles have the unusual property that there are really two distinct
     2962syntaxes in one file.  Most of the makefile uses `make' syntax (*note
     2963Writing Makefiles: Makefiles.).  However, commands are meant to be
     2964interpreted by the shell and so they are written using shell syntax.
     2965The `make' program does not try to understand shell syntax: it performs
     2966only a very few specific translations on the content of the command
     2967before handing it to the shell.
     2968
     2969   Each command line must start with a tab, except that the first
     2970command line may be attached to the target-and-prerequisites line with a
     2971semicolon in between.  _Any_ line in the makefile that begins with a
     2972tab and appears in a "rule context" (that is, after a rule has been
     2973started until another rule or variable definition) will be considered a
     2974command line for that rule.  Blank lines and lines of just comments may
     2975appear among the command lines; they are ignored.
     2976
     2977   Some consequences of these rules include:
     2978
     2979   * A blank line that begins with a tab is not blank: it's an empty
     2980     command (*note Empty Commands::).
     2981
     2982   * A comment in a command line is not a `make' comment; it will be
     2983     passed to the shell as-is.  Whether the shell treats it as a
     2984     comment or not depends on your shell.
     2985
     2986   * A variable definition in a "rule context" which is indented by a
     2987     tab as the first character on the line, will be considered a
     2988     command line, not a `make' variable definition, and passed to the
     2989     shell.
     2990
     2991   * A conditional expression (`ifdef', `ifeq', etc. *note Syntax of
     2992     Conditionals: Conditional Syntax.) in a "rule context" which is
     2993     indented by a tab as the first character on the line, will be
     2994     considered a command line and be passed to the shell.
     2995
     2996
     2997* Menu:
     2998
     2999* Splitting Lines::             Breaking long command lines for readability.
     3000* Variables in Commands::       Using `make' variables in commands.
     3001
     3002
     3003File: make.info,  Node: Splitting Lines,  Next: Variables in Commands,  Prev: Command Syntax,  Up: Command Syntax
     3004
     30055.1.1 Splitting Command Lines
     3006-----------------------------
     3007
     3008One of the few ways in which `make' does interpret command lines is
     3009checking for a backslash just before the newline.  As in normal
     3010makefile syntax, a single command can be split into multiple lines in
     3011the makefile by placing a backslash before each newline.  A sequence of
     3012lines like this is considered a single command, and one instance of the
     3013shell will be invoked to run it.
     3014
     3015   However, in contrast to how they are treated in other places in a
     3016makefile, backslash-newline pairs are _not_ removed from the command.
     3017Both the backslash and the newline characters are preserved and passed
     3018to the shell.  How the backslash-newline is interpreted depends on your
     3019shell.  If the first character of the next line after the
     3020backslash-newline is a tab, then that tab (and only that tab) is
     3021removed.  Whitespace is never added to the command.
     3022
     3023   For example, this makefile:
     3024
     3025     all :
     3026             @echo no\
     3027     space
     3028             @echo no\
     3029             space
     3030             @echo one \
     3031             space
     3032             @echo one\
     3033              space
     3034
     3035consists of four separate shell commands where the output is:
     3036
     3037     nospace
     3038     nospace
     3039     one space
     3040     one space
     3041
     3042   As a more complex example, this makefile:
     3043
     3044     all : ; @echo 'hello \
     3045             world' ; echo "hello \
     3046         world"
     3047
     3048will run one shell with a command script of:
     3049
     3050     echo 'hello \
     3051     world' ; echo "hello \
     3052         world"
     3053
     3054which, according to shell quoting rules, will yield the following
     3055output:
     3056
     3057     hello \
     3058     world
     3059     hello     world
     3060
     3061Notice how the backslash/newline pair was removed inside the string
     3062quoted with double quotes (`"..."'), but not from the string quoted
     3063with single quotes (`'...'').  This is the way the default shell
     3064(`/bin/sh') handles backslash/newline pairs.  If you specify a
     3065different shell in your makefiles it may treat them differently.
     3066
     3067   Sometimes you want to split a long line inside of single quotes, but
     3068you don't want the backslash-newline to appear in the quoted content.
     3069This is often the case when passing scripts to languages such as Perl,
     3070where extraneous backslashes inside the script can change its meaning
     3071or even be a syntax error.  One simple way of handling this is to place
     3072the quoted string, or even the entire command, into a `make' variable
     3073then use the variable in the command.  In this situation the newline
     3074quoting rules for makefiles will be used, and the backslash-newline
     3075will be removed.  If we rewrite our example above using this method:
     3076
     3077     HELLO = 'hello \
     3078     world'
     3079
     3080     all : ; @echo $(HELLO)
     3081
     3082we will get output like this:
     3083
     3084     hello world
     3085
     3086   If you like, you can also use target-specific variables (*note
     3087Target-specific Variable Values: Target-specific.) to obtain a tighter
     3088correspondence between the variable and the command that uses it.
     3089
     3090
     3091File: make.info,  Node: Variables in Commands,  Prev: Splitting Lines,  Up: Command Syntax
     3092
     30935.1.2 Using Variables in Commands
     3094---------------------------------
     3095
     3096The other way in which `make' processes commands is by expanding any
     3097variable references in them (*note Basics of Variable References:
     3098Reference.).  This occurs after make has finished reading all the
     3099makefiles and the target is determined to be out of date; so, the
     3100commands for targets which are not rebuilt are never expanded.
     3101
     3102   Variable and function references in commands have identical syntax
     3103and semantics to references elsewhere in the makefile.  They also have
     3104the same quoting rules: if you want a dollar sign to appear in your
     3105command, you must double it (`$$').  For shells like the default shell,
     3106that use dollar signs to introduce variables, it's important to keep
     3107clear in your mind whether the variable you want to reference is a
     3108`make' variable (use a single dollar sign) or a shell variable (use two
     3109dollar signs).  For example:
     3110
     3111     LIST = one two three
     3112     all:
     3113             for i in $(LIST); do \
     3114                 echo $$i; \
     3115             done
     3116
     3117results in the following command being passed to the shell:
     3118
     3119     for i in one two three; do \
     3120         echo $i; \
     3121     done
     3122
     3123which generates the expected result:
     3124
     3125     one
     3126     two
     3127     three
     3128
     3129
     3130File: make.info,  Node: Echoing,  Next: Execution,  Prev: Command Syntax,  Up: Commands
     3131
     31325.2 Command Echoing
     3133===================
    26563134
    26573135Normally `make' prints each command line before it is executed.  We
     
    26823160File: make.info,  Node: Execution,  Next: Parallel,  Prev: Echoing,  Up: Commands
    26833161
    2684 Command Execution
    2685 =================
     31625.3 Command Execution
     3163=====================
    26863164
    26873165When it is time to execute commands to update a target, they are
    2688 executed by making a new subshell for each line.  (In practice, `make'
    2689 may take shortcuts that do not affect the results.)
    2690 
    2691    *Please note:* this implies that shell commands such as `cd' that
    2692 set variables local to each process will not affect the following
    2693 command lines. (1)  If you want to use `cd' to affect the next command,
    2694 put the two on a single line with a semicolon between them.  Then
    2695 `make' will consider them a single command and pass them, together, to
    2696 a shell which will execute them in sequence.  For example:
     3166executed by invoking a new subshell for each command line.  (In
     3167practice, `make' may take shortcuts that do not affect the results.)
     3168
     3169   *Please note:* this implies that setting shell variables and
     3170invoking shell commands such as `cd' that set a context local to each
     3171process will not affect the following command lines.(1)  If you want to
     3172use `cd' to affect the next statement, put both statements in a single
     3173command line.  Then `make' will invoke one shell to run the entire
     3174line, and the shell will execute the statements in sequence.  For
     3175example:
    26973176
    26983177     foo : bar/lose
    2699              cd bar; gobble lose > ../foo
    2700 
    2701    If you would like to split a single shell command into multiple
    2702 lines of text, you must use a backslash at the end of all but the last
    2703 subline.  Such a sequence of lines is combined into a single line, by
    2704 deleting the backslash-newline sequences, before passing it to the
    2705 shell.  Thus, the following is equivalent to the preceding example:
    2706 
    2707      foo : bar/lose
    2708              cd bar;  \
    2709              gobble lose > ../foo
    2710 
    2711    The program used as the shell is taken from the variable `SHELL'.
    2712 By default, the program `/bin/sh' is used.
     3178             cd $(@D) && gobble $(@F) > ../$@
     3179
     3180Here we use the shell AND operator (`&&') so that if the `cd' command
     3181fails, the script will fail without trying to invoke the `gobble'
     3182command in the wrong directory, which could cause problems (in this
     3183case it would certainly cause `../foo' to be truncated, at least).
     3184
     3185* Menu:
     3186
     3187* Choosing the Shell::          How `make' chooses the shell used
     3188                                  to run commands.
     3189
     3190   ---------- Footnotes ----------
     3191
     3192   (1) On MS-DOS, the value of current working directory is *global*, so
     3193changing it _will_ affect the following command lines on those systems.
     3194
     3195
     3196File: make.info,  Node: Choosing the Shell,  Prev: Execution,  Up: Execution
     3197
     31985.3.1 Choosing the Shell
     3199------------------------
     3200
     3201The program used as the shell is taken from the variable `SHELL'.  If
     3202this variable is not set in your makefile, the program `/bin/sh' is
     3203used as the shell.
     3204
     3205   Unlike most variables, the variable `SHELL' is never set from the
     3206environment.  This is because the `SHELL' environment variable is used
     3207to specify your personal choice of shell program for interactive use.
     3208It would be very bad for personal choices like this to affect the
     3209functioning of makefiles.  *Note Variables from the Environment:
     3210Environment.
     3211
     3212   Furthermore, when you do set `SHELL' in your makefile that value is
     3213_not_ exported in the environment to commands that `make' invokes.
     3214Instead, the value inherited from the user's environment, if any, is
     3215exported.  You can override this behavior by explicitly exporting
     3216`SHELL' (*note Communicating Variables to a Sub-`make':
     3217Variables/Recursion.), forcing it to be passed in the environment to
     3218commands.
     3219
     3220   However, on MS-DOS and MS-Windows the value of `SHELL' in the
     3221environment *is* used, since on those systems most users do not set
     3222this variable, and therefore it is most likely set specifically to be
     3223used by `make'.  On MS-DOS, if the setting of `SHELL' is not suitable
     3224for `make', you can set the variable `MAKESHELL' to the shell that
     3225`make' should use; if set it will be used as the shell instead of the
     3226value of `SHELL'.
     3227
     3228Choosing a Shell in DOS and Windows
     3229...................................
     3230
     3231Choosing a shell in MS-DOS and MS-Windows is much more complex than on
     3232other systems.
    27133233
    27143234   On MS-DOS, if `SHELL' is not set, the value of the variable
     
    27563276
    27573277   The effect of the above DOS-specific processing is that a Makefile
    2758 that says `SHELL = /bin/sh' (as many Unix makefiles do), will work on
    2759 MS-DOS unaltered if you have e.g. `sh.exe' installed in some directory
    2760 along your `PATH'.
    2761 
    2762    Unlike most variables, the variable `SHELL' is never set from the
    2763 environment.  This is because the `SHELL' environment variable is used
    2764 to specify your personal choice of shell program for interactive use.
    2765 It would be very bad for personal choices like this to affect the
    2766 functioning of makefiles.  *Note Variables from the Environment:
    2767 Environment.  However, on MS-DOS and MS-Windows the value of `SHELL' in
    2768 the environment *is* used, since on those systems most users do not set
    2769 this variable, and therefore it is most likely set specifically to be
    2770 used by `make'.  On MS-DOS, if the setting of `SHELL' is not suitable
    2771 for `make', you can set the variable `MAKESHELL' to the shell that
    2772 `make' should use; this will override the value of `SHELL'.
    2773 
    2774    ---------- Footnotes ----------
    2775 
    2776    (1) On MS-DOS, the value of current working directory is *global*,
    2777 so changing it _will_ affect the following command lines on those
    2778 systems.
     3278that contains `SHELL = /bin/sh' (as many Unix makefiles do), will work
     3279on MS-DOS unaltered if you have e.g. `sh.exe' installed in some
     3280directory along your `PATH'.
    27793281
    27803282
    27813283File: make.info,  Node: Parallel,  Next: Errors,  Prev: Execution,  Up: Commands
    27823284
    2783 Parallel Execution
    2784 ==================
     32855.4 Parallel Execution
     3286======================
    27853287
    27863288GNU `make' knows how to execute several commands at once.  Normally,
     
    28083310streams of all but one running command.  This means that attempting to
    28093311read from standard input will usually be a fatal error (a `Broken pipe'
    2810 signal) for most child processes if there are several.
     3312signal) for most child processes if there are several. 
    28113313
    28123314   It is unpredictable which command will have a valid standard input
     
    28573359File: make.info,  Node: Errors,  Next: Interrupts,  Prev: Parallel,  Up: Commands
    28583360
    2859 Errors in Commands
    2860 ==================
     33615.5 Errors in Commands
     3362======================
    28613363
    28623364After each shell command returns, `make' looks at its exit status.  If
     
    29163418program as possible, perhaps to find several independent problems so
    29173419that you can correct them all before the next attempt to compile.  This
    2918 is why Emacs' `compile' command passes the `-k' flag by default.
     3420is why Emacs' `compile' command passes the `-k' flag by default. 
    29193421
    29203422   Usually when a command fails, if it has changed the target file at
     
    29333435File: make.info,  Node: Interrupts,  Next: Recursion,  Prev: Errors,  Up: Commands
    29343436
    2935 Interrupting or Killing `make'
    2936 ==============================
     34375.6 Interrupting or Killing `make'
     3438==================================
    29373439
    29383440If `make' gets a fatal signal while a command is executing, it may
     
    29643466File: make.info,  Node: Recursion,  Next: Sequences,  Prev: Interrupts,  Up: Commands
    29653467
    2966 Recursive Use of `make'
    2967 =======================
     34685.7 Recursive Use of `make'
     3469===========================
    29683470
    29693471Recursive use of `make' means using `make' as a command in a makefile.
     
    29813483     subsystem:
    29823484             $(MAKE) -C subdir
    2983 
     3485   
    29843486   You can write recursive `make' commands just by copying this example,
    29853487but there are many things to know about how they work and why, and about
     
    30113513File: make.info,  Node: MAKE Variable,  Next: Variables/Recursion,  Prev: Recursion,  Up: Recursion
    30123514
    3013 How the `MAKE' Variable Works
    3014 -----------------------------
     35155.7.1 How the `MAKE' Variable Works
     3516-----------------------------------
    30153517
    30163518Recursive `make' commands should always use the variable `MAKE', not
     
    30243526is `cd subdir && /bin/make'.  If you use a special version of `make' to
    30253527run the top-level makefile, the same special version will be executed
    3026 for recursive invocations.
     3528for recursive invocations. 
    30273529
    30283530   As a special feature, using the variable `MAKE' in the commands of a
     
    30423544file named `subsystem' and do nothing else.  What you really want it to
    30433545do is run `cd subdir && make -t'; but that would require executing the
    3044 command, and `-t' says not to execute commands.
     3546command, and `-t' says not to execute commands. 
    30453547
    30463548   The special feature makes this do what you want: whenever a command
     
    30563558File: make.info,  Node: Variables/Recursion,  Next: Options/Recursion,  Prev: MAKE Variable,  Up: Recursion
    30573559
    3058 Communicating Variables to a Sub-`make'
    3059 ---------------------------------------
     35605.7.2 Communicating Variables to a Sub-`make'
     3561---------------------------------------------
    30603562
    30613563Variable values of the top-level `make' can be passed to the sub-`make'
     
    30763578characters other than letters, numbers, and underscores.
    30773579
    3078    The special variables `SHELL' and `MAKEFLAGS' are always exported
    3079 (unless you unexport them).  `MAKEFILES' is exported if you set it to
    3080 anything.
     3580   The value of the `make' variable `SHELL' is not exported.  Instead,
     3581the value of the `SHELL' variable from the invoking environment is
     3582passed to the sub-`make'.  You can force `make' to export its value for
     3583`SHELL' by using the `export' directive, described below.  *Note
     3584Choosing the Shell::.
     3585
     3586   The special variable `MAKEFLAGS' is always exported (unless you
     3587unexport it).  `MAKEFILES' is exported if you set it to anything.
    30813588
    30823589   `make' automatically passes down variable values that were defined
     
    31533660`.EXPORT_ALL_VARIABLES' instead of using the `export' directive.  This
    31543661will be ignored by old `make's, while the `export' directive will cause
    3155 a syntax error.
     3662a syntax error. 
    31563663
    31573664   Likewise, you can use `unexport' by itself to tell `make' _not_ to
     
    31863693File: make.info,  Node: Options/Recursion,  Next: -w Option,  Prev: Variables/Recursion,  Up: Recursion
    31873694
    3188 Communicating Options to a Sub-`make'
    3189 -------------------------------------
     36955.7.3 Communicating Options to a Sub-`make'
     3696-------------------------------------------
    31903697
    31913698Flags such as `-s' and `-k' are passed automatically to the sub-`make'
     
    32913798File: make.info,  Node: -w Option,  Prev: Options/Recursion,  Up: Recursion
    32923799
    3293 The `--print-directory' Option
    3294 ------------------------------
     38005.7.4 The `--print-directory' Option
     3801------------------------------------
    32953802
    32963803If you use several levels of recursive `make' invocations, the `-w' or
     
    33173824File: make.info,  Node: Sequences,  Next: Empty Commands,  Prev: Recursion,  Up: Commands
    33183825
    3319 Defining Canned Command Sequences
    3320 =================================
     38265.8 Defining Canned Command Sequences
     3827=====================================
    33213828
    33223829When the same sequence of commands is useful in making various targets,
     
    33323839     mv y.tab.c $@
    33333840     endef
    3334 
     3841   
    33353842Here `run-yacc' is the name of the variable being defined; `endef'
    33363843marks the end of the definition; the lines in between are the commands.
     
    33923899File: make.info,  Node: Empty Commands,  Prev: Sequences,  Up: Commands
    33933900
    3394 Using Empty Commands
    3395 ====================
     39015.9 Using Empty Commands
     3902========================
    33963903
    33973904It is sometimes useful to define commands which do nothing.  This is
     
    34213928File: make.info,  Node: Using Variables,  Next: Conditionals,  Prev: Commands,  Up: Top
    34223929
    3423 How to Use Variables
    3424 ********************
     39306 How to Use Variables
     3931**********************
    34253932
    34263933A "variable" is a name defined in a makefile to represent a string of
     
    34283935explicit request into targets, prerequisites, commands, and other parts
    34293936of the makefile.  (In some other versions of `make', variables are
    3430 called "macros".)
     3937called "macros".) 
    34313938
    34323939   Variables and functions in all parts of a makefile are expanded when
     
    34833990File: make.info,  Node: Reference,  Next: Flavors,  Prev: Using Variables,  Up: Using Variables
    34843991
    3485 Basics of Variable References
    3486 =============================
     39926.1 Basics of Variable References
     3993=================================
    34873994
    34883995To substitute a variable's value, write a dollar sign followed by the
     
    35004007     program : $(objects)
    35014008             cc -o program $(objects)
    3502      
     4009
    35034010     $(objects) : defs.h
    35044011
     
    35234030File: make.info,  Node: Flavors,  Next: Advanced,  Prev: Reference,  Up: Using Variables
    35244031
    3525 The Two Flavors of Variables
    3526 ============================
     40326.2 The Two Flavors of Variables
     4033================================
    35274034
    35284035There are two ways that a variable in GNU `make' can have a value; we
     
    35444051     bar = $(ugh)
    35454052     ugh = Huh?
    3546      
     4053
    35474054     all:;echo $(foo)
    35484055
     
    35644071
    35654072because it will cause an infinite loop in the variable expansion.
    3566 (Actually `make' detects the infinite loop and reports an error.)
     4073(Actually `make' detects the infinite loop and reports an error.) 
    35674074
    35684075   Another disadvantage is that any functions (*note Functions for
     
    36054112
    36064113     ifeq (0,${MAKELEVEL})
    3607      cur-dir   := $(shell pwd)
    36084114     whoami    := $(shell whoami)
    36094115     host-type := $(shell arch)
     
    36154121
    36164122     ${subdirs}:
    3617            ${MAKE} cur-dir=${cur-dir}/$@ -C $@ all
     4123             ${MAKE} -C $@ all
    36184124
    36194125   Simply expanded variables generally make complicated makefile
     
    36694175File: make.info,  Node: Advanced,  Next: Values,  Prev: Flavors,  Up: Using Variables
    36704176
    3671 Advanced Features for Reference to Variables
    3672 ============================================
     41776.3 Advanced Features for Reference to Variables
     4178================================================
    36734179
    36744180This section describes some advanced features you can use to reference
     
    36844190File: make.info,  Node: Substitution Refs,  Next: Computed Names,  Prev: Advanced,  Up: Advanced
    36854191
    3686 Substitution References
    3687 -----------------------
     41926.3.1 Substitution References
     4193-----------------------------
    36884194
    36894195A "substitution reference" substitutes the value of a variable with
     
    37174223
    37184224For example:
    3719      
     4225
    37204226     foo := a.o b.o c.o
    37214227     bar := $(foo:%.o=%.c)
     
    37264232File: make.info,  Node: Computed Names,  Prev: Substitution Refs,  Up: Advanced
    37274233
    3728 Computed Variable Names
    3729 -----------------------
     42346.3.2 Computed Variable Names
     4235-----------------------------
    37304236
    37314237Computed variable names are a complicated concept needed only for
     
    37984304     a_dirs := dira dirb
    37994305     1_dirs := dir1 dir2
    3800      
     4306
    38014307     a_files := filea fileb
    38024308     1_files := file1 file2
    3803      
     4309
    38044310     ifeq "$(use_a)" "yes"
    38054311     a1 := a
     
    38074313     a1 := 1
    38084314     endif
    3809      
     4315
    38104316     ifeq "$(use_dirs)" "yes"
    38114317     df := dirs
     
    38134319     df := files
    38144320     endif
    3815      
     4321
    38164322     dirs := $($(a1)_$(df))
    38174323
     
    38234329     a_objects := a.o b.o c.o
    38244330     1_objects := 1.o 2.o 3.o
    3825      
     4331
    38264332     sources := $($(a1)_objects:.o=.c)
    38274333
     
    38394345     func := strip
    38404346     endif
    3841      
     4347
    38424348     bar := a d b g q c
    3843      
     4349
    38444350     foo := $($(func) $(bar))
    38454351
     
    38694375File: make.info,  Node: Values,  Next: Setting,  Prev: Advanced,  Up: Using Variables
    38704376
    3871 How Variables Get Their Values
    3872 ==============================
     43776.4 How Variables Get Their Values
     4378==================================
    38734379
    38744380Variables can get values in several different ways:
     
    38944400File: make.info,  Node: Setting,  Next: Appending,  Prev: Values,  Up: Using Variables
    38954401
    3896 Setting Variables
    3897 =================
     44026.5 Setting Variables
     4403=====================
    38984404
    38994405To set a variable from the makefile, write a line starting with the
     
    39474453File: make.info,  Node: Appending,  Next: Override Directive,  Prev: Setting,  Up: Using Variables
    39484454
    3949 Appending More Text to Variables
    3950 ================================
     44556.6 Appending More Text to Variables
     4456====================================
    39514457
    39524458Often it is useful to add more text to the value of a variable already
     
    39834489it a simply-expanded variable, `+=' adds to that simply-expanded
    39844490definition, and expands the new text before appending it to the old
    3985 value just as `:=' does (*note Setting Variables: Setting., for a full
    3986 explanation of `:=').  In fact,
     4491value just as `:=' does (see *Note Setting Variables: Setting, for a
     4492full explanation of `:=').  In fact,
    39874493
    39884494     variable := value
     
    39904496
    39914497is exactly equivalent to:
     4498
    39924499
    39934500     variable := value
     
    40224529The first line defines the `CFLAGS' variable with a reference to another
    40234530variable, `includes'.  (`CFLAGS' is used by the rules for C
    4024 compilation; *note Catalogue of Implicit Rules: Catalogue of Rules..)
     4531compilation; *note Catalogue of Implicit Rules: Catalogue of Rules.)
    40254532Using `=' for the definition makes `CFLAGS' a recursively-expanded
    40264533variable, meaning `$(includes) -O' is _not_ expanded when `make'
     
    40444551File: make.info,  Node: Override Directive,  Next: Defining,  Prev: Appending,  Up: Using Variables
    40454552
    4046 The `override' Directive
    4047 ========================
     45536.7 The `override' Directive
     4554============================
    40484555
    40494556If a variable has been set with a command argument (*note Overriding
     
    40884595File: make.info,  Node: Defining,  Next: Environment,  Prev: Override Directive,  Up: Using Variables
    40894596
    4090 Defining Variables Verbatim
    4091 ===========================
     45976.8 Defining Variables Verbatim
     4598===============================
    40924599
    40934600Another way to set the value of a variable is to use the `define'
     
    41474654File: make.info,  Node: Environment,  Next: Target-specific,  Prev: Defining,  Up: Using Variables
    41484655
    4149 Variables from the Environment
    4150 ==============================
     46566.9 Variables from the Environment
     4657==================================
    41514658
    41524659Variables in `make' can come from the environment in which `make' is
    41534660run.  Every environment variable that `make' sees when it starts up is
    4154 transformed into a `make' variable with the same name and value.  But
    4155 an explicit assignment in the makefile, or with a command argument,
    4156 overrides the environment.  (If the `-e' flag is specified, then values
    4157 from the environment override assignments in the makefile.  *Note
    4158 Summary of Options: Options Summary.  But this is not recommended
     4661transformed into a `make' variable with the same name and value.
     4662However, an explicit assignment in the makefile, or with a command
     4663argument, overrides the environment.  (If the `-e' flag is specified,
     4664then values from the environment override assignments in the makefile.
     4665*Note Summary of Options: Options Summary.  But this is not recommended
    41594666practice.)
    41604667
     
    41634670you prefer.  This is safe for variables with standard or conventional
    41644671meanings because you know that no makefile will use them for other
    4165 things.  (But this is not totally reliable; some makefiles set `CFLAGS'
    4166 explicitly and therefore are not affected by the value in the
     4672things.  (Note this is not totally reliable; some makefiles set
     4673`CFLAGS' explicitly and therefore are not affected by the value in the
    41674674environment.)
    41684675
    4169    When `make' is invoked recursively, variables defined in the outer
    4170 invocation can be passed to inner invocations through the environment
    4171 (*note Recursive Use of `make': Recursion.).  By default, only
    4172 variables that came from the environment or the command line are passed
    4173 to recursive invocations.  You can use the `export' directive to pass
    4174 other variables.  *Note Communicating Variables to a Sub-`make':
    4175 Variables/Recursion, for full details.
     4676   When `make' runs a command script, variables defined in the makefile
     4677are placed into the environment of that command.  This allows you to
     4678pass values to sub-`make' invocations (*note Recursive Use of `make':
     4679Recursion.).  By default, only variables that came from the environment
     4680or the command line are passed to recursive invocations.  You can use
     4681the `export' directive to pass other variables.  *Note Communicating
     4682Variables to a Sub-`make': Variables/Recursion, for full details.
    41764683
    41774684   Other use of variables from the environment is not recommended.  It
     
    41844691which is normally present in the environment to specify the user's
    41854692choice of interactive shell.  It would be very undesirable for this
    4186 choice to affect `make'.  So `make' ignores the environment value of
    4187 `SHELL' (except on MS-DOS and MS-Windows, where `SHELL' is usually not
    4188 set.  *Note Special handling of SHELL on MS-DOS: Execution.)
     4693choice to affect `make'; so, `make' handles the `SHELL' environment
     4694variable in a special way; see *Note Choosing the Shell::.
    41894695
    41904696
    41914697File: make.info,  Node: Target-specific,  Next: Pattern-specific,  Prev: Environment,  Up: Using Variables
    41924698
    4193 Target-specific Variable Values
    4194 ===============================
     46996.10 Target-specific Variable Values
     4700====================================
    41954701
    41964702Variable values in `make' are usually global; that is, they are the
     
    42614767File: make.info,  Node: Pattern-specific,  Prev: Target-specific,  Up: Using Variables
    42624768
    4263 Pattern-specific Variable Values
    4264 ================================
     47696.11 Pattern-specific Variable Values
     4770=====================================
    42654771
    42664772In addition to target-specific variable values (*note Target-specific
     
    42994805File: make.info,  Node: Conditionals,  Next: Functions,  Prev: Using Variables,  Up: Top
    43004806
    4301 Conditional Parts of Makefiles
    4302 ******************************
     48077 Conditional Parts of Makefiles
     4808********************************
    43034809
    43044810A "conditional" causes part of a makefile to be obeyed or ignored
     
    43184824File: make.info,  Node: Conditional Example,  Next: Conditional Syntax,  Prev: Conditionals,  Up: Conditionals
    43194825
    4320 Example of a Conditional
    4321 ========================
     48267.1 Example of a Conditional
     4827============================
    43224828
    43234829The following example of a conditional tells `make' to use one set of
     
    43304836     libs_for_gcc = -lgnu
    43314837     normal_libs =
    4332      
     4838
    43334839     foo: $(objects)
    43344840     ifeq ($(CC),gcc)
     
    43804886     libs_for_gcc = -lgnu
    43814887     normal_libs =
    4382      
     4888
    43834889     ifeq ($(CC),gcc)
    43844890       libs=$(libs_for_gcc)
     
    43864892       libs=$(normal_libs)
    43874893     endif
    4388      
     4894
    43894895     foo: $(objects)
    43904896             $(CC) -o foo $(objects) $(libs)
     
    43934899File: make.info,  Node: Conditional Syntax,  Next: Testing Flags,  Prev: Conditional Example,  Up: Conditionals
    43944900
    4395 Syntax of Conditionals
    4396 ======================
     49017.2 Syntax of Conditionals
     4902==========================
    43974903
    43984904The syntax of a simple conditional with no `else' is as follows:
     
    44144920     endif
    44154921
    4416 If the condition is true, TEXT-IF-TRUE is used; otherwise,
    4417 TEXT-IF-FALSE is used instead.  The TEXT-IF-FALSE can be any number of
    4418 lines of text.
     4922   or:
     4923
     4924     CONDITIONAL-DIRECTIVE
     4925     TEXT-IF-ONE-IS-TRUE
     4926     else CONDITIONAL-DIRECTIVE
     4927     TEXT-IF-TRUE
     4928     else
     4929     TEXT-IF-FALSE
     4930     endif
     4931
     4932There can be as many "`else' CONDITIONAL-DIRECTIVE" clauses as
     4933necessary.  Once a given condition is true, TEXT-IF-TRUE is used and no
     4934other clause is used; if no condition is true then TEXT-IF-FALSE is
     4935used.  The TEXT-IF-TRUE and TEXT-IF-FALSE can be any number of lines of
     4936text.
    44194937
    44204938   The syntax of the CONDITIONAL-DIRECTIVE is the same whether the
    4421 conditional is simple or complex.  There are four different directives
    4422 that test different conditions.  Here is a table of them:
     4939conditional is simple or complex; after an `else' or not.  There are
     4940four different directives that test different conditions.  Here is a
     4941table of them:
    44234942
    44244943`ifeq (ARG1, ARG2)'
     
    44564975
    44574976`ifdef VARIABLE-NAME'
    4458      If the variable VARIABLE-NAME has a non-empty value, the
    4459      TEXT-IF-TRUE is effective; otherwise, the TEXT-IF-FALSE, if any,
    4460      is effective.  Variables that have never been defined have an
    4461      empty value.  The variable VARIABLE-NAME is itself expanded, so it
    4462      could be a variable or function that expands to the name of a
    4463      variable.
     4977     The `ifdef' form takes the _name_ of a variable as its argument,
     4978     not a reference to a variable.  The value of that variable has a
     4979     non-empty value, the TEXT-IF-TRUE is effective; otherwise, the
     4980     TEXT-IF-FALSE, if any, is effective.  Variables that have never
     4981     been defined have an empty value.  The text VARIABLE-NAME is
     4982     expanded, so it could be a variable or function that expands to
     4983     the name of a variable.  For example:
     4984
     4985          bar = true
     4986          foo = bar
     4987          ifdef $(foo)
     4988          frobozz = yes
     4989          endif
     4990
     4991     The variable reference `$(foo)' is expanded, yielding `bar', which
     4992     is considered to be the name of a variable.  The variable `bar' is
     4993     not expanded, but its value is examined to determine if it is
     4994     non-empty.
    44644995
    44654996     Note that `ifdef' only tests whether a variable has a value.  It
     
    44915022     If the variable VARIABLE-NAME has an empty value, the TEXT-IF-TRUE
    44925023     is effective; otherwise, the TEXT-IF-FALSE, if any, is effective.
     5024     The rules for expansion and testing of VARIABLE-NAME are identical
     5025     to the `ifdef' directive.
    44935026
    44945027   Extra spaces are allowed and ignored at the beginning of the
     
    45255058File: make.info,  Node: Testing Flags,  Prev: Conditional Syntax,  Up: Conditionals
    45265059
    4527 Conditionals that Test Flags
    4528 ============================
     50607.3 Conditionals that Test Flags
     5061================================
    45295062
    45305063You can write a conditional that tests `make' command flags such as
     
    45565089File: make.info,  Node: Functions,  Next: Running,  Prev: Conditionals,  Up: Top
    45575090
    4558 Functions for Transforming Text
    4559 *******************************
     50918 Functions for Transforming Text
     5092*********************************
    45605093
    45615094"Functions" allow you to do text processing in the makefile to compute
     
    45715104* Text Functions::              General-purpose text manipulation functions.
    45725105* File Name Functions::         Functions for manipulating file names.
     5106* Conditional Functions::       Functions that implement conditions.
    45735107* Foreach Function::            Repeat some text with controlled variation.
    4574 * If Function::                 Conditionally expand a value.
    45755108* Call Function::               Expand a user-defined function.
    45765109* Value Function::              Return the un-expanded value of a variable.
    45775110* Eval Function::               Evaluate the arguments as makefile syntax.
    45785111* Origin Function::             Find where a variable got its value.
     5112* Flavor Function::             Find out the flavor of a variable.
    45795113* Shell Function::              Substitute the output of a shell command.
    45805114* Make Control Functions::      Functions that control how make runs.
     
    45835117File: make.info,  Node: Syntax of Functions,  Next: Text Functions,  Prev: Functions,  Up: Functions
    45845118
    4585 Function Call Syntax
    4586 ====================
     51198.1 Function Call Syntax
     5120========================
    45875121
    45885122A function call resembles a variable reference.  It looks like this:
     
    46375171File: make.info,  Node: Text Functions,  Next: File Name Functions,  Prev: Syntax of Functions,  Up: Functions
    46385172
    4639 Functions for String Substitution and Analysis
    4640 ==============================================
     51738.2 Functions for String Substitution and Analysis
     5174==================================================
    46415175
    46425176Here are some functions that operate on strings:
     
    48035337`$(wordlist S,E,TEXT)'
    48045338     Returns the list of words in TEXT starting with word S and ending
    4805      with word E (inclusive).  The legitimate values of S and E start
    4806      from 1.  If S is bigger than the number of words in TEXT, the
    4807      value is empty.  If E is bigger than the number of words in TEXT,
    4808      words up to the end of TEXT are returned.  If S is greater than E,
    4809      nothing is returned.  For example,
     5339     with word E (inclusive).  The legitimate values of S start from 1;
     5340     E may start from 0.  If S is bigger than the number of words in
     5341     TEXT, the value is empty.  If E is bigger than the number of words
     5342     in TEXT, words up to the end of TEXT are returned.  If S is
     5343     greater than E, nothing is returned.  For example,
    48105344
    48115345          $(wordlist 2, 3, foo bar baz)
     
    48295363     same as `$(word 1,TEXT)', the `firstword' function is retained for
    48305364     its simplicity.
     5365
     5366`$(lastword NAMES...)'
     5367     The argument NAMES is regarded as a series of names, separated by
     5368     whitespace.  The value is the last name in the series.
     5369
     5370     For example,
     5371
     5372          $(lastword foo bar)
     5373
     5374     produces the result `bar'.  Although `$(lastword TEXT)' is the
     5375     same as `$(word $(words TEXT),TEXT)', the `lastword' function was
     5376     added for its simplicity and better performance.
    48315377
    48325378   Here is a realistic example of the use of `subst' and `patsubst'.
     
    48575403
    48585404
    4859 File: make.info,  Node: File Name Functions,  Next: Foreach Function,  Prev: Text Functions,  Up: Functions
    4860 
    4861 Functions for File Names
    4862 ========================
     5405File: make.info,  Node: File Name Functions,  Next: Conditional Functions,  Prev: Text Functions,  Up: Functions
     5406
     54078.3 Functions for File Names
     5408============================
    48635409
    48645410Several of the built-in expansion functions relate specifically to
     
    49695515     File Names: Wildcards.
    49705516
    4971 
    4972 File: make.info,  Node: Foreach Function,  Next: If Function,  Prev: File Name Functions,  Up: Functions
    4973 
    4974 The `foreach' Function
    4975 ======================
     5517`$(realpath NAMES...)'
     5518     For each file name in NAMES return the canonical absolute name.  A
     5519     canonical name does not contain any `.' or `..' components, nor
     5520     any repeated path separators (`/') or symlinks.  In case of a
     5521     failure the empty string is returned.  Consult the `realpath(3)'
     5522     documentation for a list of possible failure causes.
     5523
     5524`$(abspath NAMES...)'
     5525     For each file name in NAMES return an absolute name that does not
     5526     contain any `.' or `..' components, nor any repeated path
     5527     separators (`/').  Note that, in contrast to `realpath' function,
     5528     `abspath' does not resolve symlinks and does not require the file
     5529     names to refer to an existing file or directory.  Use the
     5530     `wildcard' function to test for existence.
     5531
     5532
     5533File: make.info,  Node: Conditional Functions,  Next: Foreach Function,  Prev: File Name Functions,  Up: Functions
     5534
     55358.4 Functions for Conditionals
     5536==============================
     5537
     5538There are three functions that provide conditional expansion.  A key
     5539aspect of these functions is that not all of the arguments are expanded
     5540initially.  Only those arguments which need to be expanded, will be
     5541expanded.
     5542
     5543`$(if CONDITION,THEN-PART[,ELSE-PART])'
     5544     The `if' function provides support for conditional expansion in a
     5545     functional context (as opposed to the GNU `make' makefile
     5546     conditionals such as `ifeq' (*note Syntax of Conditionals:
     5547     Conditional Syntax.).
     5548
     5549     The first argument, CONDITION, first has all preceding and
     5550     trailing whitespace stripped, then is expanded.  If it expands to
     5551     any non-empty string, then the condition is considered to be true.
     5552     If it expands to an empty string, the condition is considered to
     5553     be false.
     5554
     5555     If the condition is true then the second argument, THEN-PART, is
     5556     evaluated and this is used as the result of the evaluation of the
     5557     entire `if' function.
     5558
     5559     If the condition is false then the third argument, ELSE-PART, is
     5560     evaluated and this is the result of the `if' function.  If there is
     5561     no third argument, the `if' function evaluates to nothing (the
     5562     empty string).
     5563
     5564     Note that only one of the THEN-PART or the ELSE-PART will be
     5565     evaluated, never both.  Thus, either can contain side-effects
     5566     (such as `shell' function calls, etc.)
     5567
     5568`$(or CONDITION1[,CONDITION2[,CONDITION3...]])'
     5569     The `or' function provides a "short-circuiting" OR operation.
     5570     Each argument is expanded, in order.  If an argument expands to a
     5571     non-empty string the processing stops and the result of the
     5572     expansion is that string.  If, after all arguments are expanded,
     5573     all of them are false (empty), then the result of the expansion is
     5574     the empty string.
     5575
     5576`$(and CONDITION1[,CONDITION2[,CONDITION3...]])'
     5577     The `and' function provides a "short-circuiting" AND operation.
     5578     Each argument is expanded, in order.  If an argument expands to an
     5579     empty string the processing stops and the result of the expansion
     5580     is the empty string.  If all arguments expand to a non-empty
     5581     string then the result of the expansion is the expansion of the
     5582     last argument.
     5583
     5584
     5585
     5586File: make.info,  Node: Foreach Function,  Next: Call Function,  Prev: Conditional Functions,  Up: Functions
     5587
     55888.5 The `foreach' Function
     5589==========================
    49765590
    49775591The `foreach' function is very different from other functions.  It
     
    50455659
    50465660
    5047 File: make.info,  Node: If Function,  Next: Call Function,  Prev: Foreach Function,  Up: Functions
    5048 
    5049 The `if' Function
    5050 =================
    5051 
    5052 The `if' function provides support for conditional expansion in a
    5053 functional context (as opposed to the GNU `make' makefile conditionals
    5054 such as `ifeq' (*note Syntax of Conditionals: Conditional Syntax.).
    5055 
    5056    An `if' function call can contain either two or three arguments:
    5057 
    5058      $(if CONDITION,THEN-PART[,ELSE-PART])
    5059 
    5060    The first argument, CONDITION, first has all preceding and trailing
    5061 whitespace stripped, then is expanded.  If it expands to any non-empty
    5062 string, then the condition is considered to be true.  If it expands to
    5063 an empty string, the condition is considered to be false.
    5064 
    5065    If the condition is true then the second argument, THEN-PART, is
    5066 evaluated and this is used as the result of the evaluation of the entire
    5067 `if' function.
    5068 
    5069    If the condition is false then the third argument, ELSE-PART, is
    5070 evaluated and this is the result of the `if' function.  If there is no
    5071 third argument, the `if' function evaluates to nothing (the empty
    5072 string).
    5073 
    5074    Note that only one of the THEN-PART or the ELSE-PART will be
    5075 evaluated, never both.  Thus, either can contain side-effects (such as
    5076 `shell' function calls, etc.)
    5077 
    5078 
    5079 File: make.info,  Node: Call Function,  Next: Value Function,  Prev: If Function,  Up: Functions
    5080 
    5081 The `call' Function
    5082 ===================
     5661File: make.info,  Node: Call Function,  Next: Value Function,  Prev: Foreach Function,  Up: Functions
     5662
     56638.6 The `call' Function
     5664=======================
    50835665
    50845666The `call' function is unique in that it can be used to create new
     
    51195701
    51205702     reverse = $(2) $(1)
    5121      
     5703
    51225704     foo = $(call reverse,a,b)
    51235705
     
    51285710
    51295711     pathsearch = $(firstword $(wildcard $(addsuffix /$(1),$(subst :, ,$(PATH)))))
    5130      
     5712
    51315713     LS := $(call pathsearch,ls)
    51325714
     
    51565738File: make.info,  Node: Value Function,  Next: Eval Function,  Prev: Call Function,  Up: Functions
    51575739
    5158 The `value' Function
    5159 ====================
     57408.7 The `value' Function
     5741========================
    51605742
    51615743The `value' function provides a way for you to use the value of a
     
    51805762
    51815763     FOO = $PATH
    5182      
     5764
    51835765     all:
    51845766             @echo $(FOO)
     
    51965778File: make.info,  Node: Eval Function,  Next: Origin Function,  Prev: Value Function,  Up: Functions
    51975779
    5198 The `eval' Function
    5199 ===================
     57808.8 The `eval' Function
     5781=======================
    52005782
    52015783The `eval' function is very special: it allows you to define new
     
    52285810
    52295811     PROGRAMS    = server client
    5230      
     5812
    52315813     server_OBJS = server.o server_priv.o server_access.o
    52325814     server_LIBS = priv protocol
    5233      
     5815
    52345816     client_OBJS = client.o client_api.o client_mem.o
    52355817     client_LIBS = protocol
    5236      
     5818
    52375819     # Everything after this is generic
    5238      
     5820
    52395821     .PHONY: all
    52405822     all: $(PROGRAMS)
    5241      
     5823
    52425824     define PROGRAM_template
    52435825      $(1): $$($(1)_OBJS) $$($(1)_LIBS:%=-l%)
    52445826      ALL_OBJS   += $$($(1)_OBJS)
    52455827     endef
    5246      
     5828
    52475829     $(foreach prog,$(PROGRAMS),$(eval $(call PROGRAM_template,$(prog))))
    5248      
     5830
    52495831     $(PROGRAMS):
    52505832             $(LINK.o) $^ $(LDLIBS) -o $@
    5251      
     5833
    52525834     clean:
    52535835             rm -f $(ALL_OBJS) $(PROGRAMS)
    52545836
    52555837
    5256 File: make.info,  Node: Origin Function,  Next: Shell Function,  Prev: Eval Function,  Up: Functions
    5257 
    5258 The `origin' Function
    5259 =====================
     5838File: make.info,  Node: Origin Function,  Next: Flavor Function,  Prev: Eval Function,  Up: Functions
     5839
     58408.9 The `origin' Function
     5841=========================
    52605842
    52615843The `origin' function is unlike most other functions in that it does
     
    53405922
    53415923
    5342 File: make.info,  Node: Shell Function,  Next: Make Control Functions,  Prev: Origin Function,  Up: Functions
    5343 
    5344 The `shell' Function
    5345 ====================
     5924File: make.info,  Node: Flavor Function,  Next: Shell Function,  Prev: Origin Function,  Up: Functions
     5925
     59268.10 The `flavor' Function
     5927==========================
     5928
     5929The `flavor' function is unlike most other functions (and like `origin'
     5930function) in that it does not operate on the values of variables; it
     5931tells you something _about_ a variable.  Specifically, it tells you the
     5932flavor of a variable (*note The Two Flavors of Variables: Flavors.).
     5933
     5934   The syntax of the `flavor' function is:
     5935
     5936     $(flavor VARIABLE)
     5937
     5938   Note that VARIABLE is the _name_ of a variable to inquire about; not
     5939a _reference_ to that variable.  Therefore you would not normally use a
     5940`$' or parentheses when writing it.  (You can, however, use a variable
     5941reference in the name if you want the name not to be a constant.)
     5942
     5943   The result of this function is a string that identifies the flavor
     5944of the variable VARIABLE:
     5945
     5946`undefined'
     5947     if VARIABLE was never defined.
     5948
     5949`recursive'
     5950     if VARIABLE is a recursively expanded variable.
     5951
     5952`simple'
     5953     if VARIABLE is a simply expanded variable.
     5954
     5955
     5956
     5957File: make.info,  Node: Shell Function,  Next: Make Control Functions,  Prev: Flavor Function,  Up: Functions
     5958
     59598.11 The `shell' Function
     5960=========================
    53465961
    53475962The `shell' function is unlike any other function other than the
     
    53745989
    53755990sets `files' to the expansion of `*.c'.  Unless `make' is using a very
    5376 strange shell, this has the same result as `$(wildcard *.c)'.
     5991strange shell, this has the same result as `$(wildcard *.c)' (as long
     5992as at least one `.c' file exists).
    53775993
    53785994
    53795995File: make.info,  Node: Make Control Functions,  Prev: Shell Function,  Up: Functions
    53805996
    5381 Functions That Control Make
    5382 ===========================
     59978.12 Functions That Control Make
     5998================================
    53835999
    53846000These functions control the way make runs.  Generally, they are used to
     
    54036019
    54046020          ERR = $(error found an error!)
    5405          
     6021
    54066022          .PHONY: err
    54076023          err: ; $(ERR)
     
    54186034     The result of the expansion of this function is the empty string.
    54196035
     6036`$(info TEXT...)'
     6037     This function does nothing more than print its (expanded)
     6038     argument(s) to standard output.  No makefile name or line number
     6039     is added.  The result of the expansion of this function is the
     6040     empty string.
     6041
    54206042
    54216043File: make.info,  Node: Running,  Next: Implicit Rules,  Prev: Functions,  Up: Top
    54226044
    5423 How to Run `make'
    5424 *****************
     60459 How to Run `make'
     6046*******************
    54256047
    54266048A makefile that says how to recompile a program can be used in more
     
    54686090File: make.info,  Node: Makefile Arguments,  Next: Goals,  Prev: Running,  Up: Running
    54696091
    5470 Arguments to Specify the Makefile
    5471 =================================
     60929.1 Arguments to Specify the Makefile
     6093=====================================
    54726094
    54736095The way to specify the name of the makefile is with the `-f' or
     
    54866108File: make.info,  Node: Goals,  Next: Instead of Execution,  Prev: Makefile Arguments,  Up: Running
    54876109
    5488 Arguments to Specify the Goals
    5489 ==============================
     61109.2 Arguments to Specify the Goals
     6111==================================
    54906112
    54916113The "goals" are the targets that `make' should strive ultimately to
     
    54986120program or programs they describe.  If the first rule in the makefile
    54996121has several targets, only the first target in the rule becomes the
    5500 default goal, not the whole list.
    5501 
    5502    You can specify a different goal or goals with arguments to `make'.
    5503 Use the name of the goal as an argument.  If you specify several goals,
    5504 `make' processes each of them in turn, in the order you name them.
     6122default goal, not the whole list.  You can manage the selection of the
     6123default goal from within your makefile using the `.DEFAULT_GOAL'
     6124variable (*note Other Special Variables: Special Variables.).
     6125
     6126   You can also specify a different goal or goals with command-line
     6127arguments to `make'.  Use the name of the goal as an argument.  If you
     6128specify several goals, `make' processes each of them in turn, in the
     6129order you name them.
    55056130
    55066131   Any target in the makefile may be specified as a goal (unless it
     
    55206145
    55216146     sources = foo.c bar.c
    5522      
     6147
    55236148     ifneq ($(MAKECMDGOALS),clean)
    55246149     include $(sources:.c=.d)
     
    56006225File: make.info,  Node: Instead of Execution,  Next: Avoiding Compilation,  Prev: Goals,  Up: Running
    56016226
    5602 Instead of Executing the Commands
    5603 =================================
     62279.3 Instead of Executing the Commands
     6228=====================================
    56046229
    56056230The makefile tells `make' how to tell whether a target is up to date,
     
    56796304File: make.info,  Node: Avoiding Compilation,  Next: Overriding,  Prev: Instead of Execution,  Up: Running
    56806305
    5681 Avoiding Recompilation of Some Files
    5682 ====================================
     63069.4 Avoiding Recompilation of Some Files
     6307========================================
    56836308
    56846309Sometimes you may have changed a source file but you do not want to
     
    57226347File: make.info,  Node: Overriding,  Next: Testing,  Prev: Avoiding Compilation,  Up: Running
    57236348
    5724 Overriding Variables
    5725 ====================
     63499.5 Overriding Variables
     6350========================
    57266351
    57276352An argument that contains `=' specifies the value of a variable: `V=X'
     
    57746399File: make.info,  Node: Testing,  Next: Options Summary,  Prev: Overriding,  Up: Running
    57756400
    5776 Testing the Compilation of a Program
    5777 ====================================
     64019.6 Testing the Compilation of a Program
     6402========================================
    57786403
    57796404Normally, when an error happens in executing a shell command, `make'
     
    58106435File: make.info,  Node: Options Summary,  Prev: Testing,  Up: Running
    58116436
    5812 Summary of Options
    5813 ==================
     64379.7 Summary of Options
     6438======================
    58146439
    58156440Here is a table of all the options `make' understands:
     
    58246449     Consider all targets out-of-date.  GNU `make' proceeds to consider
    58256450     targets and their prerequisites using the normal algorithms;
    5826      however, all these targets are remade, regardless of the status of
    5827      their prerequisites.
     6451     however, all targets so considered are always remade regardless of
     6452     the status of their prerequisites.  To avoid infinite recursion, if
     6453     `MAKE_RESTARTS' (*note Other Special Variables: Special
     6454     Variables.) is set to a number greater than 0 this option is
     6455     disabled when considering whether to remake makefiles (*note How
     6456     Makefiles Are Remade: Remaking Makefiles.).
    58286457
    58296458`-C DIR'
     
    59306559     floating-point number).  With no argument, removes a previous load
    59316560     limit.  *Note Parallel Execution: Parallel.
     6561
     6562`-L'
     6563`--check-symlink-times'
     6564     On systems that support symbolic links, this option causes `make'
     6565     to consider the timestamps on any symbolic links in addition to the
     6566     timestamp on the file referenced by those links.  When this option
     6567     is provided, the most recent timestamp among the file and the
     6568     symbolic links is taken as the modification time for this target
     6569     file.
    59326570
    59336571`-n'
     
    60526690File: make.info,  Node: Implicit Rules,  Next: Archives,  Prev: Running,  Up: Top
    60536691
    6054 Using Implicit Rules
    6055 ********************
     669210 Using Implicit Rules
     6693***********************
    60566694
    60576695Certain standard ways of remaking target files are used very often.  For
     
    60906728* Chained Rules::               How to use a chain of implicit rules.
    60916729* Pattern Rules::               How to define new implicit rules.
    6092 * Last Resort::                 How to defining commands for rules
    6093                                   which cannot find any.
     6730* Last Resort::                 How to define commands for rules which
     6731                                  cannot find any.
    60946732* Suffix Rules::                The old-fashioned style of implicit rule.
    60956733* Implicit Rule Search::        The precise algorithm for applying
     
    60996737File: make.info,  Node: Using Implicit,  Next: Catalogue of Rules,  Prev: Implicit Rules,  Up: Implicit Rules
    61006738
    6101 Using Implicit Rules
    6102 ====================
     673910.1 Using Implicit Rules
     6740=========================
    61036741
    61046742To allow `make' to find a customary method for updating a target file,
     
    61736811File: make.info,  Node: Catalogue of Rules,  Next: Implicit Variables,  Prev: Using Implicit,  Up: Implicit Rules
    61746812
    6175 Catalogue of Implicit Rules
    6176 ===========================
     681310.2 Catalogue of Implicit Rules
     6814================================
    61776815
    61786816Here is a catalogue of predefined implicit rules which are always
     
    61826820`--no-builtin-rules' option cancels all predefined rules.
    61836821
     6822   This manual only documents the default rules available on POSIX-based
     6823operating systems.  Other operating systems, such as VMS, Windows,
     6824OS/2, etc. may have different sets of default rules.  To see the full
     6825list of default rules and variables available in your version of GNU
     6826`make', run `make -p' in a directory with no makefile.
     6827
    61846828   Not all of these rules will always be defined, even when the `-r'
    61856829option is not given.  Many of the predefined implicit rules are
     
    61876831depends on the "suffix list" (the list of prerequisites of the special
    61886832target `.SUFFIXES').  The default suffix list is: `.out', `.a', `.ln',
    6189 `.o', `.c', `.cc', `.C', `.p', `.f', `.F', `.r', `.y', `.l', `.s',
    6190 `.S', `.mod', `.sym', `.def', `.h', `.info', `.dvi', `.tex', `.texinfo',
    6191 `.texi', `.txinfo', `.w', `.ch' `.web', `.sh', `.elc', `.el'.  All of
    6192 the implicit rules described below whose prerequisites have one of
    6193 these suffixes are actually suffix rules.  If you modify the suffix
    6194 list, the only predefined suffix rules in effect will be those named by
    6195 one or two of the suffixes that are on the list you specify; rules
    6196 whose suffixes fail to be on the list are disabled.  *Note
    6197 Old-Fashioned Suffix Rules: Suffix Rules, for full details on suffix
    6198 rules.
     6833`.o', `.c', `.cc', `.C', `.cpp', `.p', `.f', `.F', `.r', `.y', `.l',
     6834`.s', `.S', `.mod', `.sym', `.def', `.h', `.info', `.dvi', `.tex',
     6835`.texinfo', `.texi', `.txinfo', `.w', `.ch' `.web', `.sh', `.elc',
     6836`.el'.  All of the implicit rules described below whose prerequisites
     6837have one of these suffixes are actually suffix rules.  If you modify
     6838the suffix list, the only predefined suffix rules in effect will be
     6839those named by one or two of the suffixes that are on the list you
     6840specify; rules whose suffixes fail to be on the list are disabled.
     6841*Note Old-Fashioned Suffix Rules: Suffix Rules, for full details on
     6842suffix rules.
    61996843
    62006844Compiling C programs
     
    62036847
    62046848Compiling C++ programs
    6205      `N.o' is made automatically from `N.cc' or `N.C' with a command of
    6206      the form `$(CXX) -c $(CPPFLAGS) $(CXXFLAGS)'.  We encourage you to
    6207      use the suffix `.cc' for C++ source files instead of `.C'.
     6849     `N.o' is made automatically from `N.cc', `N.cpp', or `N.C' with a
     6850     command of the form `$(CXX) -c $(CPPFLAGS) $(CXXFLAGS)'.  We
     6851     encourage you to use the suffix `.cc' for C++ source files instead
     6852     of `.C'.
    62086853
    62096854Compiling Pascal programs
     
    63797024File: make.info,  Node: Implicit Variables,  Next: Chained Rules,  Prev: Catalogue of Rules,  Up: Implicit Rules
    63807025
    6381 Variables Used by Implicit Rules
    6382 ================================
     702610.3 Variables Used by Implicit Rules
     7027=====================================
    63837028
    63847029The commands in built-in implicit rules make liberal use of certain
    6385 predefined variables.  You can alter these variables in the makefile,
    6386 with arguments to `make', or in the environment to alter how the
    6387 implicit rules work without redefining the rules themselves.  You can
    6388 cancel all variables used by implicit rules with the `-R' or
     7030predefined variables.  You can alter the values of these variables in
     7031the makefile, with arguments to `make', or in the environment to alter
     7032how the implicit rules work without redefining the rules themselves.
     7033You can cancel all variables used by implicit rules with the `-R' or
    63897034`--no-builtin-variables' option.
    63907035
     
    64067051argument, separate them with spaces.
    64077052
    6408    Here is a table of variables used as names of programs in built-in
    6409 rules:
     7053   The following tables describe of some of the more commonly-used
     7054predefined variables.  This list is not exhaustive, and the default
     7055values shown here may not be what are selected by `make' for your
     7056environment.  To see the complete list of predefined variables for your
     7057instance of GNU `make' you can run `make -p' in a directory with no
     7058makefiles.
     7059
     7060   Here is a table of some of the more common variables used as names of
     7061programs in built-in rules: makefiles.
    64107062
    64117063`AR'
    6412      Archive-maintaining program; default `ar'.
     7064     Archive-maintaining program; default `ar'. 
    64137065
    64147066`AS'
    6415      Program for doing assembly; default `as'.
     7067     Program for compiling assembly files; default `as'. 
    64167068
    64177069`CC'
    6418      Program for compiling C programs; default `cc'.
     7070     Program for compiling C programs; default `cc'. 
     7071
     7072`CO'
     7073     Program for checking out files from RCS; default `co'. 
    64197074
    64207075`CXX'
    6421      Program for compiling C++ programs; default `g++'.
     7076     Program for compiling C++ programs; default `g++'. 
    64227077
    64237078`CO'
    6424      Program for extracting a file from RCS; default `co'.
     7079     Program for extracting a file from RCS; default `co'. 
    64257080
    64267081`CPP'
     
    64307085`FC'
    64317086     Program for compiling or preprocessing Fortran and Ratfor programs;
    6432      default `f77'.
     7087     default `f77'. 
    64337088
    64347089`GET'
    6435      Program for extracting a file from SCCS; default `get'.
     7090     Program for extracting a file from SCCS; default `get'. 
    64367091
    64377092`LEX'
    6438      Program to use to turn Lex grammars into C programs or Ratfor
    6439      programs; default `lex'.
     7093     Program to use to turn Lex grammars into source code; default
     7094     `lex'. 
     7095
     7096`YACC'
     7097     Program to use to turn Yacc grammars into source code; default
     7098     `yacc'. 
     7099
     7100`LINT'
     7101     Program to use to run lint on source code; default `lint'. 
     7102
     7103`M2C'
     7104     Program to use to compile Modula-2 source code; default `m2c'. 
    64407105
    64417106`PC'
    6442      Program for compiling Pascal programs; default `pc'.
    6443 
    6444 `YACC'
    6445      Program to use to turn Yacc grammars into C programs; default
    6446      `yacc'.
    6447 
    6448 `YACCR'
    6449      Program to use to turn Yacc grammars into Ratfor programs; default
    6450      `yacc -r'.
     7107     Program for compiling Pascal programs; default `pc'. 
    64517108
    64527109`MAKEINFO'
    64537110     Program to convert a Texinfo source file into an Info file; default
    6454      `makeinfo'.
     7111     `makeinfo'. 
    64557112
    64567113`TEX'
    6457      Program to make TeX DVI files from TeX source; default `tex'.
     7114     Program to make TeX DVI files from TeX source; default `tex'. 
    64587115
    64597116`TEXI2DVI'
    64607117     Program to make TeX DVI files from Texinfo source; default
    6461      `texi2dvi'.
     7118     `texi2dvi'. 
    64627119
    64637120`WEAVE'
    6464      Program to translate Web into TeX; default `weave'.
     7121     Program to translate Web into TeX; default `weave'. 
    64657122
    64667123`CWEAVE'
    6467      Program to translate C Web into TeX; default `cweave'.
     7124     Program to translate C Web into TeX; default `cweave'. 
    64687125
    64697126`TANGLE'
    6470      Program to translate Web into Pascal; default `tangle'.
     7127     Program to translate Web into Pascal; default `tangle'. 
    64717128
    64727129`CTANGLE'
    6473      Program to translate C Web into C; default `ctangle'.
     7130     Program to translate C Web into C; default `ctangle'. 
    64747131
    64757132`RM'
    6476      Command to remove a file; default `rm -f'.
     7133     Command to remove a file; default `rm -f'. 
    64777134
    64787135   Here is a table of variables whose values are additional arguments
     
    65137170     Extra flags to give to Lex.
    65147171
     7172`YFLAGS'
     7173     Extra flags to give to Yacc.
     7174
    65157175`PFLAGS'
    65167176     Extra flags to give to the Pascal compiler.
     
    65197179     Extra flags to give to the Fortran compiler for Ratfor programs.
    65207180
    6521 `YFLAGS'
    6522      Extra flags to give to Yacc.
     7181`LINTFLAGS'
     7182     Extra flags to give to lint.
    65237183
    65247184
    65257185File: make.info,  Node: Chained Rules,  Next: Pattern Rules,  Prev: Implicit Variables,  Up: Implicit Rules
    65267186
    6527 Chains of Implicit Rules
    6528 ========================
     718710.4 Chains of Implicit Rules
     7188=============================
    65297189
    65307190Sometimes a file can be made by a sequence of implicit rules.  For
     
    65787238as a prerequisite of the special target `.PRECIOUS' to preserve
    65797239intermediate files made by implicit rules whose target patterns match
    6580 that file's name; see *Note Interrupts::.
     7240that file's name; see *Note Interrupts::. 
    65817241
    65827242   A chain can involve more than two implicit rules.  For example, it is
     
    66007260earlier in the ordering of rules.
    66017261
    6602 
    6603 File: make.info,  Node: Pattern Rules,  Next: Last Resort,  Prev: Chained Rules,  Up: Implicit Rules
    6604 
    6605 Defining and Redefining Pattern Rules
    6606 =====================================
    6607 
    6608 You define an implicit rule by writing a "pattern rule".  A pattern
    6609 rule looks like an ordinary rule, except that its target contains the
    6610 character `%' (exactly one of them).  The target is considered a
    6611 pattern for matching file names; the `%' can match any nonempty
    6612 substring, while other characters match only themselves.  The
    6613 prerequisites likewise use `%' to show how their names relate to the
    6614 target name.
    6615 
    6616    Thus, a pattern rule `%.o : %.c' says how to make any file `STEM.o'
    6617 from another file `STEM.c'.
    6618 
    6619    Note that expansion using `%' in pattern rules occurs *after* any
    6620 variable or function expansions, which take place when the makefile is
    6621 read.  *Note How to Use Variables: Using Variables, and *Note Functions
    6622 for Transforming Text: Functions.
    6623 
    6624 * Menu:
    6625 
    6626 * Pattern Intro::               An introduction to pattern rules.
    6627 * Pattern Examples::            Examples of pattern rules.
    6628 * Automatic Variables::         How to use automatic variables in the
    6629                                   commands of implicit rules.
    6630 * Pattern Match::               How patterns match.
    6631 * Match-Anything Rules::        Precautions you should take prior to
    6632                                   defining rules that can match any
    6633                                   target file whatever.
    6634 * Canceling Rules::             How to override or cancel built-in rules.
    6635 
    6636 
    6637 File: make.info,  Node: Pattern Intro,  Next: Pattern Examples,  Prev: Pattern Rules,  Up: Pattern Rules
    6638 
    6639 Introduction to Pattern Rules
    6640 -----------------------------
    6641 
    6642 A pattern rule contains the character `%' (exactly one of them) in the
    6643 target; otherwise, it looks exactly like an ordinary rule.  The target
    6644 is a pattern for matching file names; the `%' matches any nonempty
    6645 substring, while other characters match only themselves.
    6646 
    6647    For example, `%.c' as a pattern matches any file name that ends in
    6648 `.c'.  `s.%.c' as a pattern matches any file name that starts with
    6649 `s.', ends in `.c' and is at least five characters long.  (There must
    6650 be at least one character to match the `%'.)  The substring that the
    6651 `%' matches is called the "stem".
    6652 
    6653    `%' in a prerequisite of a pattern rule stands for the same stem
    6654 that was matched by the `%' in the target.  In order for the pattern
    6655 rule to apply, its target pattern must match the file name under
    6656 consideration, and its prerequisite patterns must name files that exist
    6657 or can be made.  These files become prerequisites of the target.
    6658 
    6659    Thus, a rule of the form
    6660 
    6661      %.o : %.c ; COMMAND...
    6662 
    6663 specifies how to make a file `N.o', with another file `N.c' as its
    6664 prerequisite, provided that `N.c' exists or can be made.
    6665 
    6666    There may also be prerequisites that do not use `%'; such a
    6667 prerequisite attaches to every file made by this pattern rule.  These
    6668 unvarying prerequisites are useful occasionally.
    6669 
    6670    A pattern rule need not have any prerequisites that contain `%', or
    6671 in fact any prerequisites at all.  Such a rule is effectively a general
    6672 wildcard.  It provides a way to make any file that matches the target
    6673 pattern.  *Note Last Resort::.
    6674 
    6675    Pattern rules may have more than one target.  Unlike normal rules,
    6676 this does not act as many different rules with the same prerequisites
    6677 and commands.  If a pattern rule has multiple targets, `make' knows that
    6678 the rule's commands are responsible for making all of the targets.  The
    6679 commands are executed only once to make all the targets.  When searching
    6680 for a pattern rule to match a target, the target patterns of a rule
    6681 other than the one that matches the target in need of a rule are
    6682 incidental: `make' worries only about giving commands and prerequisites
    6683 to the file presently in question.  However, when this file's commands
    6684 are run, the other targets are marked as having been updated themselves.
    6685 
    6686    The order in which pattern rules appear in the makefile is important
    6687 since this is the order in which they are considered.  Of equally
    6688 applicable rules, only the first one found is used.  The rules you
    6689 write take precedence over those that are built in.  Note however, that
    6690 a rule whose prerequisites actually exist or are mentioned always takes
    6691 priority over a rule with prerequisites that must be made by chaining
    6692 other implicit rules.
    6693 
    6694 
    6695 File: make.info,  Node: Pattern Examples,  Next: Automatic Variables,  Prev: Pattern Intro,  Up: Pattern Rules
    6696 
    6697 Pattern Rule Examples
    6698 ---------------------
    6699 
    6700 Here are some examples of pattern rules actually predefined in `make'.
    6701 First, the rule that compiles `.c' files into `.o' files:
    6702 
    6703      %.o : %.c
    6704              $(CC) -c $(CFLAGS) $(CPPFLAGS) $< -o $@
    6705 
    6706 defines a rule that can make any file `X.o' from `X.c'.  The command
    6707 uses the automatic variables `$@' and `$<' to substitute the names of
    6708 the target file and the source file in each case where the rule applies
    6709 (*note Automatic Variables::).
    6710 
    6711    Here is a second built-in rule:
    6712 
    6713      % :: RCS/%,v
    6714              $(CO) $(COFLAGS) $<
    6715 
    6716 defines a rule that can make any file `X' whatsoever from a
    6717 corresponding file `X,v' in the subdirectory `RCS'.  Since the target
    6718 is `%', this rule will apply to any file whatever, provided the
    6719 appropriate prerequisite file exists.  The double colon makes the rule
    6720 "terminal", which means that its prerequisite may not be an intermediate
    6721 file (*note Match-Anything Pattern Rules: Match-Anything Rules.).
    6722 
    6723    This pattern rule has two targets:
    6724 
    6725      %.tab.c %.tab.h: %.y
    6726              bison -d $<
    6727 
    6728 This tells `make' that the command `bison -d X.y' will make both
    6729 `X.tab.c' and `X.tab.h'.  If the file `foo' depends on the files
    6730 `parse.tab.o' and `scan.o' and the file `scan.o' depends on the file
    6731 `parse.tab.h', when `parse.y' is changed, the command `bison -d parse.y'
    6732 will be executed only once, and the prerequisites of both `parse.tab.o'
    6733 and `scan.o' will be satisfied.  (Presumably the file `parse.tab.o'
    6734 will be recompiled from `parse.tab.c' and the file `scan.o' from
    6735 `scan.c', while `foo' is linked from `parse.tab.o', `scan.o', and its
    6736 other prerequisites, and it will execute happily ever after.)
    6737 
    6738 
    6739 File: make.info,  Node: Automatic Variables,  Next: Pattern Match,  Prev: Pattern Examples,  Up: Pattern Rules
    6740 
    6741 Automatic Variables
    6742 -------------------
    6743 
    6744 Suppose you are writing a pattern rule to compile a `.c' file into a
    6745 `.o' file: how do you write the `cc' command so that it operates on the
    6746 right source file name?  You cannot write the name in the command,
    6747 because the name is different each time the implicit rule is applied.
    6748 
    6749    What you do is use a special feature of `make', the "automatic
    6750 variables".  These variables have values computed afresh for each rule
    6751 that is executed, based on the target and prerequisites of the rule.
    6752 In this example, you would use `$@' for the object file name and `$<'
    6753 for the source file name.
    6754 
    6755    It's very important that you recognize the limited scope in which
    6756 automatic variable values are available: they only have values within
    6757 the command script.  In particular, you cannot use them anywhere within
    6758 the target or prerequisite lists of a rule; they have no value there
    6759 and will expand to the empty string.  A common mistake is attempting to
    6760 use `$@' within the prerequisites list in a rule; this will not work.
    6761 However, see below for information on the SysV-style `$$@' variables.
    6762 
    6763    Here is a table of automatic variables:
    6764 
    6765 `$@'
    6766      The file name of the target of the rule.  If the target is an
    6767      archive member, then `$@' is the name of the archive file.  In a
    6768      pattern rule that has multiple targets (*note Introduction to
    6769      Pattern Rules: Pattern Intro.), `$@' is the name of whichever
    6770      target caused the rule's commands to be run.
    6771 
    6772 `$%'
    6773      The target member name, when the target is an archive member.
    6774      *Note Archives::.  For example, if the target is `foo.a(bar.o)'
    6775      then `$%' is `bar.o' and `$@' is `foo.a'.  `$%' is empty when the
    6776      target is not an archive member.
    6777 
    6778 `$<'
    6779      The name of the first prerequisite.  If the target got its
    6780      commands from an implicit rule, this will be the first
    6781      prerequisite added by the implicit rule (*note Implicit Rules::).
    6782 
    6783 `$?'
    6784      The names of all the prerequisites that are newer than the target,
    6785      with spaces between them.  For prerequisites which are archive
    6786      members, only the member named is used (*note Archives::).
    6787 
    6788 `$^'
    6789      The names of all the prerequisites, with spaces between them.  For
    6790      prerequisites which are archive members, only the member named is
    6791      used (*note Archives::).  A target has only one prerequisite on
    6792      each other file it depends on, no matter how many times each file
    6793      is listed as a prerequisite.  So if you list a prerequisite more
    6794      than once for a target, the value of `$^' contains just one copy
    6795      of the name.
    6796 
    6797 `$+'
    6798      This is like `$^', but prerequisites listed more than once are
    6799      duplicated in the order they were listed in the makefile.  This is
    6800      primarily useful for use in linking commands where it is
    6801      meaningful to repeat library file names in a particular order.
    6802 
    6803 `$*'
    6804      The stem with which an implicit rule matches (*note How Patterns
    6805      Match: Pattern Match.).  If the target is `dir/a.foo.b' and the
    6806      target pattern is `a.%.b' then the stem is `dir/foo'.  The stem is
    6807      useful for constructing names of related files.
    6808 
    6809      In a static pattern rule, the stem is part of the file name that
    6810      matched the `%' in the target pattern.
    6811 
    6812      In an explicit rule, there is no stem; so `$*' cannot be determined
    6813      in that way.  Instead, if the target name ends with a recognized
    6814      suffix (*note Old-Fashioned Suffix Rules: Suffix Rules.), `$*' is
    6815      set to the target name minus the suffix.  For example, if the
    6816      target name is `foo.c', then `$*' is set to `foo', since `.c' is a
    6817      suffix.  GNU `make' does this bizarre thing only for compatibility
    6818      with other implementations of `make'.  You should generally avoid
    6819      using `$*' except in implicit rules or static pattern rules.
    6820 
    6821      If the target name in an explicit rule does not end with a
    6822      recognized suffix, `$*' is set to the empty string for that rule.
    6823 
    6824    `$?' is useful even in explicit rules when you wish to operate on
    6825 only the prerequisites that have changed.  For example, suppose that an
    6826 archive named `lib' is supposed to contain copies of several object
    6827 files.  This rule copies just the changed object files into the archive:
    6828 
    6829      lib: foo.o bar.o lose.o win.o
    6830              ar r lib $?
    6831 
    6832    Of the variables listed above, four have values that are single file
    6833 names, and three have values that are lists of file names.  These seven
    6834 have variants that get just the file's directory name or just the file
    6835 name within the directory.  The variant variables' names are formed by
    6836 appending `D' or `F', respectively.  These variants are semi-obsolete
    6837 in GNU `make' since the functions `dir' and `notdir' can be used to get
    6838 a similar effect (*note Functions for File Names: File Name
    6839 Functions.).  Note, however, that the `D' variants all omit the
    6840 trailing slash which always appears in the output of the `dir'
    6841 function.  Here is a table of the variants:
    6842 
    6843 `$(@D)'
    6844      The directory part of the file name of the target, with the
    6845      trailing slash removed.  If the value of `$@' is `dir/foo.o' then
    6846      `$(@D)' is `dir'.  This value is `.' if `$@' does not contain a
    6847      slash.
    6848 
    6849 `$(@F)'
    6850      The file-within-directory part of the file name of the target.  If
    6851      the value of `$@' is `dir/foo.o' then `$(@F)' is `foo.o'.  `$(@F)'
    6852      is equivalent to `$(notdir $@)'.
    6853 
    6854 `$(*D)'
    6855 `$(*F)'
    6856      The directory part and the file-within-directory part of the stem;
    6857      `dir' and `foo' in this example.
    6858 
    6859 `$(%D)'
    6860 `$(%F)'
    6861      The directory part and the file-within-directory part of the target
    6862      archive member name.  This makes sense only for archive member
    6863      targets of the form `ARCHIVE(MEMBER)' and is useful only when
    6864      MEMBER may contain a directory name.  (*Note Archive Members as
    6865      Targets: Archive Members.)
    6866 
    6867 `$(<D)'
    6868 `$(<F)'
    6869      The directory part and the file-within-directory part of the first
    6870      prerequisite.
    6871 
    6872 `$(^D)'
    6873 `$(^F)'
    6874      Lists of the directory parts and the file-within-directory parts
    6875      of all prerequisites.
    6876 
    6877 `$(+D)'
    6878 `$(+F)'
    6879      Lists of the directory parts and the file-within-directory parts
    6880      of all prerequisites, including multiple instances of duplicated
    6881      prerequisites.
    6882 
    6883 `$(?D)'
    6884 `$(?F)'
    6885      Lists of the directory parts and the file-within-directory parts of
    6886      all prerequisites that are newer than the target.
    6887 
    6888    Note that we use a special stylistic convention when we talk about
    6889 these automatic variables; we write "the value of `$<'", rather than
    6890 "the variable `<'" as we would write for ordinary variables such as
    6891 `objects' and `CFLAGS'.  We think this convention looks more natural in
    6892 this special case.  Please do not assume it has a deep significance;
    6893 `$<' refers to the variable named `<' just as `$(CFLAGS)' refers to the
    6894 variable named `CFLAGS'.  You could just as well use `$(<)' in place of
    6895 `$<'.
    6896 
    6897    GNU `make' provides support for the SysV `make' feature that allows
    6898 special variable references `$$@', `$$(@D)', and `$$(@F)' (note the
    6899 required double-"$"!) to appear with the _prerequisites list_ (normal
    6900 automatic variables are available only within a command script).  When
    6901 appearing in a prerequisites list, these variables are expanded to the
    6902 name of the target, the directory component of the target, and the file
    6903 component of the target, respectively.
    6904 
    6905    Note that these variables are available only within explicit and
    6906 static pattern (*note Static Pattern Rules: Static Pattern.) rules;
    6907 they have no special significance within implicit (suffix or pattern)
    6908 rules.  Also note that while SysV `make' actually expands its entire
    6909 prerequisite list _twice_, GNU `make' does not behave this way: instead
    6910 it simply expands these special variables without re-expanding any
    6911 other part of the prerequisites list.
    6912 
    6913    This somewhat bizarre feature is included only to provide some
    6914 compatibility with SysV makefiles.  In a native GNU `make' file there
    6915 are other ways to accomplish the same results.  This feature is
    6916 disabled if the special pseudo target `.POSIX' is defined.
    6917 
    6918 
    6919 File: make.info,  Node: Pattern Match,  Next: Match-Anything Rules,  Prev: Automatic Variables,  Up: Pattern Rules
    6920 
    6921 How Patterns Match
    6922 ------------------
    6923 
    6924 A target pattern is composed of a `%' between a prefix and a suffix,
    6925 either or both of which may be empty.  The pattern matches a file name
    6926 only if the file name starts with the prefix and ends with the suffix,
    6927 without overlap.  The text between the prefix and the suffix is called
    6928 the "stem".  Thus, when the pattern `%.o' matches the file name
    6929 `test.o', the stem is `test'.  The pattern rule prerequisites are
    6930 turned into actual file names by substituting the stem for the character
    6931 `%'.  Thus, if in the same example one of the prerequisites is written
    6932 as `%.c', it expands to `test.c'.
    6933 
    6934    When the target pattern does not contain a slash (and it usually does
    6935 not), directory names in the file names are removed from the file name
    6936 before it is compared with the target prefix and suffix.  After the
    6937 comparison of the file name to the target pattern, the directory names,
    6938 along with the slash that ends them, are added on to the prerequisite
    6939 file names generated from the pattern rule's prerequisite patterns and
    6940 the file name. The directories are ignored only for the purpose of
    6941 finding an implicit rule to use, not in the application of that rule.
    6942 Thus, `e%t' matches the file name `src/eat', with `src/a' as the stem.
    6943 When prerequisites are turned into file names, the directories from the
    6944 stem are added at the front, while the rest of the stem is substituted
    6945 for the `%'.  The stem `src/a' with a prerequisite pattern `c%r' gives
    6946 the file name `src/car'.
    6947 
    6948 
    6949 File: make.info,  Node: Match-Anything Rules,  Next: Canceling Rules,  Prev: Pattern Match,  Up: Pattern Rules
    6950 
    6951 Match-Anything Pattern Rules
    6952 ----------------------------
    6953 
    6954 When a pattern rule's target is just `%', it matches any file name
    6955 whatever.  We call these rules "match-anything" rules.  They are very
    6956 useful, but it can take a lot of time for `make' to think about them,
    6957 because it must consider every such rule for each file name listed
    6958 either as a target or as a prerequisite.
    6959 
    6960    Suppose the makefile mentions `foo.c'.  For this target, `make'
    6961 would have to consider making it by linking an object file `foo.c.o',
    6962 or by C compilation-and-linking in one step from `foo.c.c', or by
    6963 Pascal compilation-and-linking from `foo.c.p', and many other
    6964 possibilities.
    6965 
    6966    We know these possibilities are ridiculous since `foo.c' is a C
    6967 source file, not an executable.  If `make' did consider these
    6968 possibilities, it would ultimately reject them, because files such as
    6969 `foo.c.o' and `foo.c.p' would not exist.  But these possibilities are so
    6970 numerous that `make' would run very slowly if it had to consider them.
    6971 
    6972    To gain speed, we have put various constraints on the way `make'
    6973 considers match-anything rules.  There are two different constraints
    6974 that can be applied, and each time you define a match-anything rule you
    6975 must choose one or the other for that rule.
    6976 
    6977    One choice is to mark the match-anything rule as "terminal" by
    6978 defining it with a double colon.  When a rule is terminal, it does not
    6979 apply unless its prerequisites actually exist.  Prerequisites that
    6980 could be made with other implicit rules are not good enough.  In other
    6981 words, no further chaining is allowed beyond a terminal rule.
    6982 
    6983    For example, the built-in implicit rules for extracting sources from
    6984 RCS and SCCS files are terminal; as a result, if the file `foo.c,v' does
    6985 not exist, `make' will not even consider trying to make it as an
    6986 intermediate file from `foo.c,v.o' or from `RCS/SCCS/s.foo.c,v'.  RCS
    6987 and SCCS files are generally ultimate source files, which should not be
    6988 remade from any other files; therefore, `make' can save time by not
    6989 looking for ways to remake them.
    6990 
    6991    If you do not mark the match-anything rule as terminal, then it is
    6992 nonterminal.  A nonterminal match-anything rule cannot apply to a file
    6993 name that indicates a specific type of data.  A file name indicates a
    6994 specific type of data if some non-match-anything implicit rule target
    6995 matches it.
    6996 
    6997    For example, the file name `foo.c' matches the target for the pattern
    6998 rule `%.c : %.y' (the rule to run Yacc).  Regardless of whether this
    6999 rule is actually applicable (which happens only if there is a file
    7000 `foo.y'), the fact that its target matches is enough to prevent
    7001 consideration of any nonterminal match-anything rules for the file
    7002 `foo.c'.  Thus, `make' will not even consider trying to make `foo.c' as
    7003 an executable file from `foo.c.o', `foo.c.c', `foo.c.p', etc.
    7004 
    7005    The motivation for this constraint is that nonterminal match-anything
    7006 rules are used for making files containing specific types of data (such
    7007 as executable files) and a file name with a recognized suffix indicates
    7008 some other specific type of data (such as a C source file).
    7009 
    7010    Special built-in dummy pattern rules are provided solely to recognize
    7011 certain file names so that nonterminal match-anything rules will not be
    7012 considered.  These dummy rules have no prerequisites and no commands,
    7013 and they are ignored for all other purposes.  For example, the built-in
    7014 implicit rule
    7015 
    7016      %.p :
    7017 
    7018 exists to make sure that Pascal source files such as `foo.p' match a
    7019 specific target pattern and thereby prevent time from being wasted
    7020 looking for `foo.p.o' or `foo.p.c'.
    7021 
    7022    Dummy pattern rules such as the one for `%.p' are made for every
    7023 suffix listed as valid for use in suffix rules (*note Old-Fashioned
    7024 Suffix Rules: Suffix Rules.).
    7025 
    7026 
    7027 File: make.info,  Node: Canceling Rules,  Prev: Match-Anything Rules,  Up: Pattern Rules
    7028 
    7029 Canceling Implicit Rules
    7030 ------------------------
    7031 
    7032 You can override a built-in implicit rule (or one you have defined
    7033 yourself) by defining a new pattern rule with the same target and
    7034 prerequisites, but different commands.  When the new rule is defined,
    7035 the built-in one is replaced.  The new rule's position in the sequence
    7036 of implicit rules is determined by where you write the new rule.
    7037 
    7038    You can cancel a built-in implicit rule by defining a pattern rule
    7039 with the same target and prerequisites, but no commands.  For example,
    7040 the following would cancel the rule that runs the assembler:
    7041 
    7042      %.o : %.s
    7043 
    7044 
    7045 File: make.info,  Node: Last Resort,  Next: Suffix Rules,  Prev: Pattern Rules,  Up: Implicit Rules
    7046 
    7047 Defining Last-Resort Default Rules
    7048 ==================================
    7049 
    7050 You can define a last-resort implicit rule by writing a terminal
    7051 match-anything pattern rule with no prerequisites (*note Match-Anything
    7052 Rules::).  This is just like any other pattern rule; the only thing
    7053 special about it is that it will match any target.  So such a rule's
    7054 commands are used for all targets and prerequisites that have no
    7055 commands of their own and for which no other implicit rule applies.
    7056 
    7057    For example, when testing a makefile, you might not care if the
    7058 source files contain real data, only that they exist.  Then you might
    7059 do this:
    7060 
    7061      %::
    7062              touch $@
    7063 
    7064 to cause all the source files needed (as prerequisites) to be created
    7065 automatically.
    7066 
    7067    You can instead define commands to be used for targets for which
    7068 there are no rules at all, even ones which don't specify commands.  You
    7069 do this by writing a rule for the target `.DEFAULT'.  Such a rule's
    7070 commands are used for all prerequisites which do not appear as targets
    7071 in any explicit rule, and for which no implicit rule applies.
    7072 Naturally, there is no `.DEFAULT' rule unless you write one.
    7073 
    7074    If you use `.DEFAULT' with no commands or prerequisites:
    7075 
    7076      .DEFAULT:
    7077 
    7078 the commands previously stored for `.DEFAULT' are cleared.  Then `make'
    7079 acts as if you had never defined `.DEFAULT' at all.
    7080 
    7081    If you do not want a target to get the commands from a match-anything
    7082 pattern rule or `.DEFAULT', but you also do not want any commands to be
    7083 run for the target, you can give it empty commands (*note Defining
    7084 Empty Commands: Empty Commands.).
    7085 
    7086    You can use a last-resort rule to override part of another makefile.
    7087 *Note Overriding Part of Another Makefile: Overriding Makefiles.
    7088 
    7089 
    7090 File: make.info,  Node: Suffix Rules,  Next: Implicit Rule Search,  Prev: Last Resort,  Up: Implicit Rules
    7091 
    7092 Old-Fashioned Suffix Rules
    7093 ==========================
    7094 
    7095 "Suffix rules" are the old-fashioned way of defining implicit rules for
    7096 `make'.  Suffix rules are obsolete because pattern rules are more
    7097 general and clearer.  They are supported in GNU `make' for
    7098 compatibility with old makefiles.  They come in two kinds:
    7099 "double-suffix" and "single-suffix".
    7100 
    7101    A double-suffix rule is defined by a pair of suffixes: the target
    7102 suffix and the source suffix.  It matches any file whose name ends with
    7103 the target suffix.  The corresponding implicit prerequisite is made by
    7104 replacing the target suffix with the source suffix in the file name.  A
    7105 two-suffix rule whose target and source suffixes are `.o' and `.c' is
    7106 equivalent to the pattern rule `%.o : %.c'.
    7107 
    7108    A single-suffix rule is defined by a single suffix, which is the
    7109 source suffix.  It matches any file name, and the corresponding implicit
    7110 prerequisite name is made by appending the source suffix.  A
    7111 single-suffix rule whose source suffix is `.c' is equivalent to the
    7112 pattern rule `% : %.c'.
    7113 
    7114    Suffix rule definitions are recognized by comparing each rule's
    7115 target against a defined list of known suffixes.  When `make' sees a
    7116 rule whose target is a known suffix, this rule is considered a
    7117 single-suffix rule.  When `make' sees a rule whose target is two known
    7118 suffixes concatenated, this rule is taken as a double-suffix rule.
    7119 
    7120    For example, `.c' and `.o' are both on the default list of known
    7121 suffixes.  Therefore, if you define a rule whose target is `.c.o',
    7122 `make' takes it to be a double-suffix rule with source suffix `.c' and
    7123 target suffix `.o'.  Here is the old-fashioned way to define the rule
    7124 for compiling a C source file:
    7125 
    7126      .c.o:
    7127              $(CC) -c $(CFLAGS) $(CPPFLAGS) -o $@ $<
    7128 
    7129    Suffix rules cannot have any prerequisites of their own.  If they
    7130 have any, they are treated as normal files with funny names, not as
    7131 suffix rules.  Thus, the rule:
    7132 
    7133      .c.o: foo.h
    7134              $(CC) -c $(CFLAGS) $(CPPFLAGS) -o $@ $<
    7135 
    7136 tells how to make the file `.c.o' from the prerequisite file `foo.h',
    7137 and is not at all like the pattern rule:
    7138 
    7139      %.o: %.c foo.h
    7140              $(CC) -c $(CFLAGS) $(CPPFLAGS) -o $@ $<
    7141 
    7142 which tells how to make `.o' files from `.c' files, and makes all `.o'
    7143 files using this pattern rule also depend on `foo.h'.
    7144 
    7145    Suffix rules with no commands are also meaningless.  They do not
    7146 remove previous rules as do pattern rules with no commands (*note
    7147 Canceling Implicit Rules: Canceling Rules.).  They simply enter the
    7148 suffix or pair of suffixes concatenated as a target in the data base.
    7149 
    7150    The known suffixes are simply the names of the prerequisites of the
    7151 special target `.SUFFIXES'.  You can add your own suffixes by writing a
    7152 rule for `.SUFFIXES' that adds more prerequisites, as in:
    7153 
    7154      .SUFFIXES: .hack .win
    7155 
    7156 which adds `.hack' and `.win' to the end of the list of suffixes.
    7157 
    7158    If you wish to eliminate the default known suffixes instead of just
    7159 adding to them, write a rule for `.SUFFIXES' with no prerequisites.  By
    7160 special dispensation, this eliminates all existing prerequisites of
    7161 `.SUFFIXES'.  You can then write another rule to add the suffixes you
    7162 want.  For example,
    7163 
    7164      .SUFFIXES:            # Delete the default suffixes
    7165      .SUFFIXES: .c .o .h   # Define our suffix list
    7166 
    7167    The `-r' or `--no-builtin-rules' flag causes the default list of
    7168 suffixes to be empty.
    7169 
    7170    The variable `SUFFIXES' is defined to the default list of suffixes
    7171 before `make' reads any makefiles.  You can change the list of suffixes
    7172 with a rule for the special target `.SUFFIXES', but that does not alter
    7173 this variable.
    7174 
  • vendor/gnumake/current/doc/make.info-2

    r152 r501  
    1 This is make.info, produced by makeinfo version 4.6 from make.texi.
     1This is make.info, produced by makeinfo version 4.8 from make.texi.
     2
     3   This file documents the GNU `make' utility, which determines
     4automatically which pieces of a large program need to be recompiled,
     5and issues the commands to recompile them.
     6
     7   This is Edition 0.70, last updated 1 April 2006, of `The GNU Make
     8Manual', for GNU `make' version 3.81.
     9
     10   Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996,
     111997, 1998, 1999, 2000, 2002, 2003, 2004, 2005, 2006 Free Software
     12Foundation, Inc.
     13
     14     Permission is granted to copy, distribute and/or modify this
     15     document under the terms of the GNU Free Documentation License,
     16     Version 1.2 or any later version published by the Free Software
     17     Foundation; with no Invariant Sections, with the Front-Cover Texts
     18     being "A GNU Manual," and with the Back-Cover Texts as in (a)
     19     below.  A copy of the license is included in the section entitled
     20     "GNU Free Documentation License."
     21
     22     (a) The FSF's Back-Cover Text is: "You have freedom to copy and
     23     modify this GNU Manual, like GNU software.  Copies published by
     24     the Free Software Foundation raise funds for GNU development."
    225
    326INFO-DIR-SECTION GNU Packages
     
    629END-INFO-DIR-ENTRY
    730
    8    This file documents the GNU Make utility, which determines
    9 automatically which pieces of a large program need to be recompiled,
    10 and issues the commands to recompile them.
    11 
    12    This is Edition 0.61, last updated 02 May 2003, of `The GNU Make
    13 Manual', for `make', Version 3.81.
    14 
    15    Copyright 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
    16 1998, 1999, 2000, 2002, 2003, 2004 Free Software Foundation, Inc.
    17 
    18    Permission is granted to copy, distribute and/or modify this document
    19 under the terms of the GNU Free Documentation License, Version 1.1 or
    20 any later version published by the Free Software Foundation; with no
    21 Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
    22 Texts.  A copy of the license is included in the section entitled "GNU
    23 Free Documentation License".
     31
     32File: make.info,  Node: Pattern Rules,  Next: Last Resort,  Prev: Chained Rules,  Up: Implicit Rules
     33
     3410.5 Defining and Redefining Pattern Rules
     35==========================================
     36
     37You define an implicit rule by writing a "pattern rule".  A pattern
     38rule looks like an ordinary rule, except that its target contains the
     39character `%' (exactly one of them).  The target is considered a
     40pattern for matching file names; the `%' can match any nonempty
     41substring, while other characters match only themselves.  The
     42prerequisites likewise use `%' to show how their names relate to the
     43target name.
     44
     45   Thus, a pattern rule `%.o : %.c' says how to make any file `STEM.o'
     46from another file `STEM.c'.
     47
     48   Note that expansion using `%' in pattern rules occurs *after* any
     49variable or function expansions, which take place when the makefile is
     50read.  *Note How to Use Variables: Using Variables, and *Note Functions
     51for Transforming Text: Functions.
     52
     53* Menu:
     54
     55* Pattern Intro::               An introduction to pattern rules.
     56* Pattern Examples::            Examples of pattern rules.
     57* Automatic Variables::         How to use automatic variables in the
     58                                  commands of implicit rules.
     59* Pattern Match::               How patterns match.
     60* Match-Anything Rules::        Precautions you should take prior to
     61                                  defining rules that can match any
     62                                  target file whatever.
     63* Canceling Rules::             How to override or cancel built-in rules.
     64
     65
     66File: make.info,  Node: Pattern Intro,  Next: Pattern Examples,  Prev: Pattern Rules,  Up: Pattern Rules
     67
     6810.5.1 Introduction to Pattern Rules
     69------------------------------------
     70
     71A pattern rule contains the character `%' (exactly one of them) in the
     72target; otherwise, it looks exactly like an ordinary rule.  The target
     73is a pattern for matching file names; the `%' matches any nonempty
     74substring, while other characters match only themselves. 
     75
     76   For example, `%.c' as a pattern matches any file name that ends in
     77`.c'.  `s.%.c' as a pattern matches any file name that starts with
     78`s.', ends in `.c' and is at least five characters long.  (There must
     79be at least one character to match the `%'.)  The substring that the
     80`%' matches is called the "stem".
     81
     82   `%' in a prerequisite of a pattern rule stands for the same stem
     83that was matched by the `%' in the target.  In order for the pattern
     84rule to apply, its target pattern must match the file name under
     85consideration and all of its prerequisites (after pattern substitution)
     86must name files that exist or can be made.  These files become
     87prerequisites of the target. 
     88
     89   Thus, a rule of the form
     90
     91     %.o : %.c ; COMMAND...
     92
     93specifies how to make a file `N.o', with another file `N.c' as its
     94prerequisite, provided that `N.c' exists or can be made.
     95
     96   There may also be prerequisites that do not use `%'; such a
     97prerequisite attaches to every file made by this pattern rule.  These
     98unvarying prerequisites are useful occasionally.
     99
     100   A pattern rule need not have any prerequisites that contain `%', or
     101in fact any prerequisites at all.  Such a rule is effectively a general
     102wildcard.  It provides a way to make any file that matches the target
     103pattern.  *Note Last Resort::.
     104
     105   Pattern rules may have more than one target.  Unlike normal rules,
     106this does not act as many different rules with the same prerequisites
     107and commands.  If a pattern rule has multiple targets, `make' knows that
     108the rule's commands are responsible for making all of the targets.  The
     109commands are executed only once to make all the targets.  When searching
     110for a pattern rule to match a target, the target patterns of a rule
     111other than the one that matches the target in need of a rule are
     112incidental: `make' worries only about giving commands and prerequisites
     113to the file presently in question.  However, when this file's commands
     114are run, the other targets are marked as having been updated themselves. 
     115
     116   The order in which pattern rules appear in the makefile is important
     117since this is the order in which they are considered.  Of equally
     118applicable rules, only the first one found is used.  The rules you
     119write take precedence over those that are built in.  Note however, that
     120a rule whose prerequisites actually exist or are mentioned always takes
     121priority over a rule with prerequisites that must be made by chaining
     122other implicit rules. 
     123
     124
     125File: make.info,  Node: Pattern Examples,  Next: Automatic Variables,  Prev: Pattern Intro,  Up: Pattern Rules
     126
     12710.5.2 Pattern Rule Examples
     128----------------------------
     129
     130Here are some examples of pattern rules actually predefined in `make'.
     131First, the rule that compiles `.c' files into `.o' files:
     132
     133     %.o : %.c
     134             $(CC) -c $(CFLAGS) $(CPPFLAGS) $< -o $@
     135
     136defines a rule that can make any file `X.o' from `X.c'.  The command
     137uses the automatic variables `$@' and `$<' to substitute the names of
     138the target file and the source file in each case where the rule applies
     139(*note Automatic Variables::).
     140
     141   Here is a second built-in rule:
     142
     143     % :: RCS/%,v
     144             $(CO) $(COFLAGS) $<
     145
     146defines a rule that can make any file `X' whatsoever from a
     147corresponding file `X,v' in the subdirectory `RCS'.  Since the target
     148is `%', this rule will apply to any file whatever, provided the
     149appropriate prerequisite file exists.  The double colon makes the rule
     150"terminal", which means that its prerequisite may not be an intermediate
     151file (*note Match-Anything Pattern Rules: Match-Anything Rules.).
     152
     153   This pattern rule has two targets:
     154
     155     %.tab.c %.tab.h: %.y
     156             bison -d $<
     157
     158This tells `make' that the command `bison -d X.y' will make both
     159`X.tab.c' and `X.tab.h'.  If the file `foo' depends on the files
     160`parse.tab.o' and `scan.o' and the file `scan.o' depends on the file
     161`parse.tab.h', when `parse.y' is changed, the command `bison -d parse.y'
     162will be executed only once, and the prerequisites of both `parse.tab.o'
     163and `scan.o' will be satisfied.  (Presumably the file `parse.tab.o'
     164will be recompiled from `parse.tab.c' and the file `scan.o' from
     165`scan.c', while `foo' is linked from `parse.tab.o', `scan.o', and its
     166other prerequisites, and it will execute happily ever after.)
     167
     168
     169File: make.info,  Node: Automatic Variables,  Next: Pattern Match,  Prev: Pattern Examples,  Up: Pattern Rules
     170
     17110.5.3 Automatic Variables
     172--------------------------
     173
     174Suppose you are writing a pattern rule to compile a `.c' file into a
     175`.o' file: how do you write the `cc' command so that it operates on the
     176right source file name?  You cannot write the name in the command,
     177because the name is different each time the implicit rule is applied.
     178
     179   What you do is use a special feature of `make', the "automatic
     180variables".  These variables have values computed afresh for each rule
     181that is executed, based on the target and prerequisites of the rule.
     182In this example, you would use `$@' for the object file name and `$<'
     183for the source file name.
     184
     185   It's very important that you recognize the limited scope in which
     186automatic variable values are available: they only have values within
     187the command script.  In particular, you cannot use them anywhere within
     188the target list of a rule; they have no value there and will expand to
     189the empty string.  Also, they cannot be accessed directly within the
     190prerequisite list of a rule.  A common mistake is attempting to use
     191`$@' within the prerequisites list; this will not work.  However, there
     192is a special feature of GNU `make', secondary expansion (*note
     193Secondary Expansion::), which will allow automatic variable values to
     194be used in prerequisite lists.
     195
     196   Here is a table of automatic variables:
     197
     198`$@'
     199     The file name of the target of the rule.  If the target is an
     200     archive member, then `$@' is the name of the archive file.  In a
     201     pattern rule that has multiple targets (*note Introduction to
     202     Pattern Rules: Pattern Intro.), `$@' is the name of whichever
     203     target caused the rule's commands to be run.
     204
     205`$%'
     206     The target member name, when the target is an archive member.
     207     *Note Archives::.  For example, if the target is `foo.a(bar.o)'
     208     then `$%' is `bar.o' and `$@' is `foo.a'.  `$%' is empty when the
     209     target is not an archive member.
     210
     211`$<'
     212     The name of the first prerequisite.  If the target got its
     213     commands from an implicit rule, this will be the first
     214     prerequisite added by the implicit rule (*note Implicit Rules::).
     215
     216`$?'
     217     The names of all the prerequisites that are newer than the target,
     218     with spaces between them.  For prerequisites which are archive
     219     members, only the member named is used (*note Archives::). 
     220
     221`$^'
     222     The names of all the prerequisites, with spaces between them.  For
     223     prerequisites which are archive members, only the member named is
     224     used (*note Archives::).  A target has only one prerequisite on
     225     each other file it depends on, no matter how many times each file
     226     is listed as a prerequisite.  So if you list a prerequisite more
     227     than once for a target, the value of `$^' contains just one copy
     228     of the name.  This list does *not* contain any of the order-only
     229     prerequisites; for those see the `$|' variable, below. 
     230
     231`$+'
     232     This is like `$^', but prerequisites listed more than once are
     233     duplicated in the order they were listed in the makefile.  This is
     234     primarily useful for use in linking commands where it is
     235     meaningful to repeat library file names in a particular order.
     236
     237`$|'
     238     The names of all the order-only prerequisites, with spaces between
     239     them.
     240
     241`$*'
     242     The stem with which an implicit rule matches (*note How Patterns
     243     Match: Pattern Match.).  If the target is `dir/a.foo.b' and the
     244     target pattern is `a.%.b' then the stem is `dir/foo'.  The stem is
     245     useful for constructing names of related files. 
     246
     247     In a static pattern rule, the stem is part of the file name that
     248     matched the `%' in the target pattern.
     249
     250     In an explicit rule, there is no stem; so `$*' cannot be determined
     251     in that way.  Instead, if the target name ends with a recognized
     252     suffix (*note Old-Fashioned Suffix Rules: Suffix Rules.), `$*' is
     253     set to the target name minus the suffix.  For example, if the
     254     target name is `foo.c', then `$*' is set to `foo', since `.c' is a
     255     suffix.  GNU `make' does this bizarre thing only for compatibility
     256     with other implementations of `make'.  You should generally avoid
     257     using `$*' except in implicit rules or static pattern rules.
     258
     259     If the target name in an explicit rule does not end with a
     260     recognized suffix, `$*' is set to the empty string for that rule.
     261
     262   `$?' is useful even in explicit rules when you wish to operate on
     263only the prerequisites that have changed.  For example, suppose that an
     264archive named `lib' is supposed to contain copies of several object
     265files.  This rule copies just the changed object files into the archive:
     266
     267     lib: foo.o bar.o lose.o win.o
     268             ar r lib $?
     269
     270   Of the variables listed above, four have values that are single file
     271names, and three have values that are lists of file names.  These seven
     272have variants that get just the file's directory name or just the file
     273name within the directory.  The variant variables' names are formed by
     274appending `D' or `F', respectively.  These variants are semi-obsolete
     275in GNU `make' since the functions `dir' and `notdir' can be used to get
     276a similar effect (*note Functions for File Names: File Name
     277Functions.).  Note, however, that the `D' variants all omit the
     278trailing slash which always appears in the output of the `dir'
     279function.  Here is a table of the variants:
     280
     281`$(@D)'
     282     The directory part of the file name of the target, with the
     283     trailing slash removed.  If the value of `$@' is `dir/foo.o' then
     284     `$(@D)' is `dir'.  This value is `.' if `$@' does not contain a
     285     slash.
     286
     287`$(@F)'
     288     The file-within-directory part of the file name of the target.  If
     289     the value of `$@' is `dir/foo.o' then `$(@F)' is `foo.o'.  `$(@F)'
     290     is equivalent to `$(notdir $@)'.
     291
     292`$(*D)'
     293`$(*F)'
     294     The directory part and the file-within-directory part of the stem;
     295     `dir' and `foo' in this example.
     296
     297`$(%D)'
     298`$(%F)'
     299     The directory part and the file-within-directory part of the target
     300     archive member name.  This makes sense only for archive member
     301     targets of the form `ARCHIVE(MEMBER)' and is useful only when
     302     MEMBER may contain a directory name.  (*Note Archive Members as
     303     Targets: Archive Members.)
     304
     305`$(<D)'
     306`$(<F)'
     307     The directory part and the file-within-directory part of the first
     308     prerequisite.
     309
     310`$(^D)'
     311`$(^F)'
     312     Lists of the directory parts and the file-within-directory parts
     313     of all prerequisites.
     314
     315`$(+D)'
     316`$(+F)'
     317     Lists of the directory parts and the file-within-directory parts
     318     of all prerequisites, including multiple instances of duplicated
     319     prerequisites.
     320
     321`$(?D)'
     322`$(?F)'
     323     Lists of the directory parts and the file-within-directory parts of
     324     all prerequisites that are newer than the target.
     325
     326   Note that we use a special stylistic convention when we talk about
     327these automatic variables; we write "the value of `$<'", rather than
     328"the variable `<'" as we would write for ordinary variables such as
     329`objects' and `CFLAGS'.  We think this convention looks more natural in
     330this special case.  Please do not assume it has a deep significance;
     331`$<' refers to the variable named `<' just as `$(CFLAGS)' refers to the
     332variable named `CFLAGS'.  You could just as well use `$(<)' in place of
     333`$<'.
     334
     335
     336File: make.info,  Node: Pattern Match,  Next: Match-Anything Rules,  Prev: Automatic Variables,  Up: Pattern Rules
     337
     33810.5.4 How Patterns Match
     339-------------------------
     340
     341A target pattern is composed of a `%' between a prefix and a suffix,
     342either or both of which may be empty.  The pattern matches a file name
     343only if the file name starts with the prefix and ends with the suffix,
     344without overlap.  The text between the prefix and the suffix is called
     345the "stem".  Thus, when the pattern `%.o' matches the file name
     346`test.o', the stem is `test'.  The pattern rule prerequisites are
     347turned into actual file names by substituting the stem for the character
     348`%'.  Thus, if in the same example one of the prerequisites is written
     349as `%.c', it expands to `test.c'.
     350
     351   When the target pattern does not contain a slash (and it usually does
     352not), directory names in the file names are removed from the file name
     353before it is compared with the target prefix and suffix.  After the
     354comparison of the file name to the target pattern, the directory names,
     355along with the slash that ends them, are added on to the prerequisite
     356file names generated from the pattern rule's prerequisite patterns and
     357the file name.  The directories are ignored only for the purpose of
     358finding an implicit rule to use, not in the application of that rule.
     359Thus, `e%t' matches the file name `src/eat', with `src/a' as the stem.
     360When prerequisites are turned into file names, the directories from the
     361stem are added at the front, while the rest of the stem is substituted
     362for the `%'.  The stem `src/a' with a prerequisite pattern `c%r' gives
     363the file name `src/car'.
     364
     365
     366File: make.info,  Node: Match-Anything Rules,  Next: Canceling Rules,  Prev: Pattern Match,  Up: Pattern Rules
     367
     36810.5.5 Match-Anything Pattern Rules
     369-----------------------------------
     370
     371When a pattern rule's target is just `%', it matches any file name
     372whatever.  We call these rules "match-anything" rules.  They are very
     373useful, but it can take a lot of time for `make' to think about them,
     374because it must consider every such rule for each file name listed
     375either as a target or as a prerequisite.
     376
     377   Suppose the makefile mentions `foo.c'.  For this target, `make'
     378would have to consider making it by linking an object file `foo.c.o',
     379or by C compilation-and-linking in one step from `foo.c.c', or by
     380Pascal compilation-and-linking from `foo.c.p', and many other
     381possibilities.
     382
     383   We know these possibilities are ridiculous since `foo.c' is a C
     384source file, not an executable.  If `make' did consider these
     385possibilities, it would ultimately reject them, because files such as
     386`foo.c.o' and `foo.c.p' would not exist.  But these possibilities are so
     387numerous that `make' would run very slowly if it had to consider them.
     388
     389   To gain speed, we have put various constraints on the way `make'
     390considers match-anything rules.  There are two different constraints
     391that can be applied, and each time you define a match-anything rule you
     392must choose one or the other for that rule.
     393
     394   One choice is to mark the match-anything rule as "terminal" by
     395defining it with a double colon.  When a rule is terminal, it does not
     396apply unless its prerequisites actually exist.  Prerequisites that
     397could be made with other implicit rules are not good enough.  In other
     398words, no further chaining is allowed beyond a terminal rule.
     399
     400   For example, the built-in implicit rules for extracting sources from
     401RCS and SCCS files are terminal; as a result, if the file `foo.c,v' does
     402not exist, `make' will not even consider trying to make it as an
     403intermediate file from `foo.c,v.o' or from `RCS/SCCS/s.foo.c,v'.  RCS
     404and SCCS files are generally ultimate source files, which should not be
     405remade from any other files; therefore, `make' can save time by not
     406looking for ways to remake them.
     407
     408   If you do not mark the match-anything rule as terminal, then it is
     409nonterminal.  A nonterminal match-anything rule cannot apply to a file
     410name that indicates a specific type of data.  A file name indicates a
     411specific type of data if some non-match-anything implicit rule target
     412matches it.
     413
     414   For example, the file name `foo.c' matches the target for the pattern
     415rule `%.c : %.y' (the rule to run Yacc).  Regardless of whether this
     416rule is actually applicable (which happens only if there is a file
     417`foo.y'), the fact that its target matches is enough to prevent
     418consideration of any nonterminal match-anything rules for the file
     419`foo.c'.  Thus, `make' will not even consider trying to make `foo.c' as
     420an executable file from `foo.c.o', `foo.c.c', `foo.c.p', etc.
     421
     422   The motivation for this constraint is that nonterminal match-anything
     423rules are used for making files containing specific types of data (such
     424as executable files) and a file name with a recognized suffix indicates
     425some other specific type of data (such as a C source file).
     426
     427   Special built-in dummy pattern rules are provided solely to recognize
     428certain file names so that nonterminal match-anything rules will not be
     429considered.  These dummy rules have no prerequisites and no commands,
     430and they are ignored for all other purposes.  For example, the built-in
     431implicit rule
     432
     433     %.p :
     434
     435exists to make sure that Pascal source files such as `foo.p' match a
     436specific target pattern and thereby prevent time from being wasted
     437looking for `foo.p.o' or `foo.p.c'.
     438
     439   Dummy pattern rules such as the one for `%.p' are made for every
     440suffix listed as valid for use in suffix rules (*note Old-Fashioned
     441Suffix Rules: Suffix Rules.).
     442
     443
     444File: make.info,  Node: Canceling Rules,  Prev: Match-Anything Rules,  Up: Pattern Rules
     445
     44610.5.6 Canceling Implicit Rules
     447-------------------------------
     448
     449You can override a built-in implicit rule (or one you have defined
     450yourself) by defining a new pattern rule with the same target and
     451prerequisites, but different commands.  When the new rule is defined,
     452the built-in one is replaced.  The new rule's position in the sequence
     453of implicit rules is determined by where you write the new rule.
     454
     455   You can cancel a built-in implicit rule by defining a pattern rule
     456with the same target and prerequisites, but no commands.  For example,
     457the following would cancel the rule that runs the assembler:
     458
     459     %.o : %.s
     460
     461
     462File: make.info,  Node: Last Resort,  Next: Suffix Rules,  Prev: Pattern Rules,  Up: Implicit Rules
     463
     46410.6 Defining Last-Resort Default Rules
     465=======================================
     466
     467You can define a last-resort implicit rule by writing a terminal
     468match-anything pattern rule with no prerequisites (*note Match-Anything
     469Rules::).  This is just like any other pattern rule; the only thing
     470special about it is that it will match any target.  So such a rule's
     471commands are used for all targets and prerequisites that have no
     472commands of their own and for which no other implicit rule applies.
     473
     474   For example, when testing a makefile, you might not care if the
     475source files contain real data, only that they exist.  Then you might
     476do this:
     477
     478     %::
     479             touch $@
     480
     481to cause all the source files needed (as prerequisites) to be created
     482automatically.
     483
     484   You can instead define commands to be used for targets for which
     485there are no rules at all, even ones which don't specify commands.  You
     486do this by writing a rule for the target `.DEFAULT'.  Such a rule's
     487commands are used for all prerequisites which do not appear as targets
     488in any explicit rule, and for which no implicit rule applies.
     489Naturally, there is no `.DEFAULT' rule unless you write one.
     490
     491   If you use `.DEFAULT' with no commands or prerequisites:
     492
     493     .DEFAULT:
     494
     495the commands previously stored for `.DEFAULT' are cleared.  Then `make'
     496acts as if you had never defined `.DEFAULT' at all.
     497
     498   If you do not want a target to get the commands from a match-anything
     499pattern rule or `.DEFAULT', but you also do not want any commands to be
     500run for the target, you can give it empty commands (*note Defining
     501Empty Commands: Empty Commands.).
     502
     503   You can use a last-resort rule to override part of another makefile.
     504*Note Overriding Part of Another Makefile: Overriding Makefiles.
     505
     506
     507File: make.info,  Node: Suffix Rules,  Next: Implicit Rule Search,  Prev: Last Resort,  Up: Implicit Rules
     508
     50910.7 Old-Fashioned Suffix Rules
     510===============================
     511
     512"Suffix rules" are the old-fashioned way of defining implicit rules for
     513`make'.  Suffix rules are obsolete because pattern rules are more
     514general and clearer.  They are supported in GNU `make' for
     515compatibility with old makefiles.  They come in two kinds:
     516"double-suffix" and "single-suffix".
     517
     518   A double-suffix rule is defined by a pair of suffixes: the target
     519suffix and the source suffix.  It matches any file whose name ends with
     520the target suffix.  The corresponding implicit prerequisite is made by
     521replacing the target suffix with the source suffix in the file name.  A
     522two-suffix rule whose target and source suffixes are `.o' and `.c' is
     523equivalent to the pattern rule `%.o : %.c'.
     524
     525   A single-suffix rule is defined by a single suffix, which is the
     526source suffix.  It matches any file name, and the corresponding implicit
     527prerequisite name is made by appending the source suffix.  A
     528single-suffix rule whose source suffix is `.c' is equivalent to the
     529pattern rule `% : %.c'.
     530
     531   Suffix rule definitions are recognized by comparing each rule's
     532target against a defined list of known suffixes.  When `make' sees a
     533rule whose target is a known suffix, this rule is considered a
     534single-suffix rule.  When `make' sees a rule whose target is two known
     535suffixes concatenated, this rule is taken as a double-suffix rule.
     536
     537   For example, `.c' and `.o' are both on the default list of known
     538suffixes.  Therefore, if you define a rule whose target is `.c.o',
     539`make' takes it to be a double-suffix rule with source suffix `.c' and
     540target suffix `.o'.  Here is the old-fashioned way to define the rule
     541for compiling a C source file:
     542
     543     .c.o:
     544             $(CC) -c $(CFLAGS) $(CPPFLAGS) -o $@ $<
     545
     546   Suffix rules cannot have any prerequisites of their own.  If they
     547have any, they are treated as normal files with funny names, not as
     548suffix rules.  Thus, the rule:
     549
     550     .c.o: foo.h
     551             $(CC) -c $(CFLAGS) $(CPPFLAGS) -o $@ $<
     552
     553tells how to make the file `.c.o' from the prerequisite file `foo.h',
     554and is not at all like the pattern rule:
     555
     556     %.o: %.c foo.h
     557             $(CC) -c $(CFLAGS) $(CPPFLAGS) -o $@ $<
     558
     559which tells how to make `.o' files from `.c' files, and makes all `.o'
     560files using this pattern rule also depend on `foo.h'.
     561
     562   Suffix rules with no commands are also meaningless.  They do not
     563remove previous rules as do pattern rules with no commands (*note
     564Canceling Implicit Rules: Canceling Rules.).  They simply enter the
     565suffix or pair of suffixes concatenated as a target in the data base.
     566
     567   The known suffixes are simply the names of the prerequisites of the
     568special target `.SUFFIXES'.  You can add your own suffixes by writing a
     569rule for `.SUFFIXES' that adds more prerequisites, as in:
     570
     571     .SUFFIXES: .hack .win
     572
     573which adds `.hack' and `.win' to the end of the list of suffixes.
     574
     575   If you wish to eliminate the default known suffixes instead of just
     576adding to them, write a rule for `.SUFFIXES' with no prerequisites.  By
     577special dispensation, this eliminates all existing prerequisites of
     578`.SUFFIXES'.  You can then write another rule to add the suffixes you
     579want.  For example,
     580
     581     .SUFFIXES:            # Delete the default suffixes
     582     .SUFFIXES: .c .o .h   # Define our suffix list
     583
     584   The `-r' or `--no-builtin-rules' flag causes the default list of
     585suffixes to be empty.
     586
     587   The variable `SUFFIXES' is defined to the default list of suffixes
     588before `make' reads any makefiles.  You can change the list of suffixes
     589with a rule for the special target `.SUFFIXES', but that does not alter
     590this variable.
    24591
    25592
    26593File: make.info,  Node: Implicit Rule Search,  Prev: Suffix Rules,  Up: Implicit Rules
    27594
    28 Implicit Rule Search Algorithm
    29 ==============================
     59510.8 Implicit Rule Search Algorithm
     596===================================
    30597
    31598Here is the procedure `make' uses for searching for an implicit rule
     
    109676File: make.info,  Node: Archives,  Next: Features,  Prev: Implicit Rules,  Up: Top
    110677
    111 Using `make' to Update Archive Files
    112 ************************************
     67811 Using `make' to Update Archive Files
     679***************************************
    113680
    114681"Archive files" are files containing named subfiles called "members";
     
    127694File: make.info,  Node: Archive Members,  Next: Archive Update,  Prev: Archives,  Up: Archives
    128695
    129 Archive Members as Targets
    130 ==========================
     69611.1 Archive Members as Targets
     697===============================
    131698
    132699An individual member of an archive file can be used as a target or
     
    148715
    149716   In fact, nearly all archive member targets are updated in just this
    150 way and there is an implicit rule to do it for you.  *Note:* The `c'
    151 flag to `ar' is required if the archive file does not already exist.
     717way and there is an implicit rule to do it for you.  *Please note:* The
     718`c' flag to `ar' is required if the archive file does not already exist.
    152719
    153720   To specify several members in the same archive, you can write all the
     
    169736File: make.info,  Node: Archive Update,  Next: Archive Pitfalls,  Prev: Archive Members,  Up: Archives
    170737
    171 Implicit Rule for Archive Member Targets
    172 ========================================
     73811.2 Implicit Rule for Archive Member Targets
     739=============================================
    173740
    174741Recall that a target that looks like `A(M)' stands for the member named
     
    219786File: make.info,  Node: Archive Symbols,  Prev: Archive Update,  Up: Archive Update
    220787
    221 Updating Archive Symbol Directories
    222 -----------------------------------
     78811.2.1 Updating Archive Symbol Directories
     789------------------------------------------
    223790
    224791An archive file that is used as a library usually contains a special
     
    250817File: make.info,  Node: Archive Pitfalls,  Next: Archive Suffix Rules,  Prev: Archive Update,  Up: Archives
    251818
    252 Dangers When Using Archives
    253 ===========================
     81911.3 Dangers When Using Archives
     820================================
    254821
    255822It is important to be careful when using parallel execution (the `-j'
     
    266833File: make.info,  Node: Archive Suffix Rules,  Prev: Archive Pitfalls,  Up: Archives
    267834
    268 Suffix Rules for Archive Files
    269 ==============================
     83511.4 Suffix Rules for Archive Files
     836===================================
    270837
    271838You can write a special kind of suffix rule for dealing with archive
     
    305872File: make.info,  Node: Features,  Next: Missing,  Prev: Archives,  Up: Top
    306873
    307 Features of GNU `make'
    308 **********************
     87412 Features of GNU `make'
     875*************************
    309876
    310877Here is a summary of the features of GNU `make', for comparison with
     
    4991066
    5001067   * The built-in variable `MAKE_VERSION' gives the version number of
    501      `make'.
     1068     `make'. 
    5021069
    5031070
    5041071File: make.info,  Node: Missing,  Next: Makefile Conventions,  Prev: Features,  Up: Top
    5051072
    506 Incompatibilities and Missing Features
    507 **************************************
     107313 Incompatibilities and Missing Features
     1074*****************************************
    5081075
    5091076The `make' programs in various other systems support a few features
     
    5451112     imagine what went on in the minds of Unix `make' developers to do
    5461113     this; it is utterly inconsistent with the normal definition of
    547      `$*'.
     1114     `$*'. 
    5481115
    5491116   * In some Unix `make's, implicit rule search (*note Using Implicit
     
    5891156File: make.info,  Node: Makefile Conventions,  Next: Quick Reference,  Prev: Missing,  Up: Top
    5901157
    591 Makefile Conventions
    592 ********************
     115814 Makefile Conventions
     1159***********************
    5931160
    5941161This node describes conventions for writing the Makefiles for GNU
     
    6091176File: make.info,  Node: Makefile Basics,  Next: Utilities in Makefiles,  Up: Makefile Conventions
    6101177
    611 General Conventions for Makefiles
    612 =================================
     117814.1 General Conventions for Makefiles
     1179======================================
    6131180
    6141181Every Makefile should contain this line:
     
    6891256File: make.info,  Node: Utilities in Makefiles,  Next: Command Variables,  Prev: Makefile Basics,  Up: Makefile Conventions
    6901257
    691 Utilities in Makefiles
    692 ======================
     125814.2 Utilities in Makefiles
     1259===========================
    6931260
    6941261Write the Makefile commands (and any shell scripts, such as
     
    7441311File: make.info,  Node: Command Variables,  Next: Directory Variables,  Prev: Utilities in Makefiles,  Up: Makefile Conventions
    7451312
    746 Variables for Specifying Commands
    747 =================================
     131314.3 Variables for Specifying Commands
     1314======================================
    7481315
    7491316Makefiles should provide variables for overriding certain commands,
     
    8241391File: make.info,  Node: Directory Variables,  Next: Standard Targets,  Prev: Command Variables,  Up: Makefile Conventions
    8251392
    826 Variables for Installation Directories
    827 ======================================
     139314.4 Variables for Installation Directories
     1394===========================================
    8281395
    8291396Installation directories should always be named by variables, so it is
    8301397easy to install in a nonstandard place.  The standard names for these
    831 variables are described below.  They are based on a standard filesystem
    832 layout; variants of it are used in SVR4, 4.4BSD, GNU/Linux, Ultrix v4,
    833 and other modern operating systems.
     1398variables and the values they should have in GNU packages are described
     1399below.  They are based on a standard filesystem layout; variants of it
     1400are used in GNU/Linux and other modern operating systems.
     1401
     1402   Installers are expected to override these values when calling `make'
     1403(e.g., `make prefix=/usr install' or `configure' (e.g., `configure
     1404--prefix=/usr').  GNU packages should not try to guess which value
     1405should be appropriate for these variables on the system they are being
     1406installed onto: use the default settings specified here so that all GNU
     1407packages behave identically, allowing the installer to achieve any
     1408desired layout.
    8341409
    8351410   These two variables set the root for the installation.  All the other
     
    8841459     (If you are using Autoconf, write it as `@libexecdir@'.)
    8851460
     1461     The definition of `libexecdir' is the same for all packages, so
     1462     you should install your data in a subdirectory thereof.  Most
     1463     packages install their data under `$(libexecdir)/PACKAGE-NAME/',
     1464     possibly within additional subdirectories thereof, such as
     1465     `$(libexecdir)/PACKAGE-NAME/MACHINE/VERSION'.
     1466
    8861467   Data files used by the program during its execution are divided into
    8871468categories in two ways.
     
    9001481architecture-independent, and it is generally not hard.
    9011482
    902    Therefore, here are the variables Makefiles should use to specify
    903 directories:
     1483   Here are the variables Makefiles should use to specify directories
     1484to put these various kinds of files in:
     1485
     1486`datarootdir'
     1487     The root of the directory tree for read-only
     1488     architecture-independent data files.  This should normally be
     1489     `/usr/local/share', but write it as `$(prefix)/share'.  (If you
     1490     are using Autoconf, write it as `@datarootdir@'.)  `datadir''s
     1491     default value is based on this variable; so are `infodir',
     1492     `mandir', and others.
    9041493
    9051494`datadir'
    906      The directory for installing read-only architecture independent
    907      data files.  This should normally be `/usr/local/share', but write
    908      it as `$(prefix)/share'.  (If you are using Autoconf, write it as
    909      `@datadir@'.)  As a special exception, see `$(infodir)' and
    910      `$(includedir)' below.
     1495     The directory for installing idiosyncratic read-only
     1496     architecture-independent data files for this program.  This is
     1497     usually the same place as `datarootdir', but we use the two
     1498     separate variables so that you can move these program-specific
     1499     files without altering the location for Info files, man pages, etc.
     1500
     1501     This should normally be `/usr/local/share', but write it as
     1502     `$(datarootdir)'.  (If you are using Autoconf, write it as
     1503     `@datadir@'.)
     1504
     1505     The definition of `datadir' is the same for all packages, so you
     1506     should install your data in a subdirectory thereof.  Most packages
     1507     install their data under `$(datadir)/PACKAGE-NAME/'.
    9111508
    9121509`sysconfdir'
     
    9411538     `@localstatedir@'.)
    9421539
    943 `libdir'
    944      The directory for object files and libraries of object code.  Do
    945      not install executables here, they probably ought to go in
    946      `$(libexecdir)' instead.  The value of `libdir' should normally be
    947      `/usr/local/lib', but write it as `$(exec_prefix)/lib'.  (If you
    948      are using Autoconf, write it as `@libdir@'.)
    949 
    950 `infodir'
    951      The directory for installing the Info files for this package.  By
    952      default, it should be `/usr/local/info', but it should be written
    953      as `$(prefix)/info'.  (If you are using Autoconf, write it as
    954      `@infodir@'.)
    955 
    956 `lispdir'
    957      The directory for installing any Emacs Lisp files in this package.
    958      By default, it should be `/usr/local/share/emacs/site-lisp', but
    959      it should be written as `$(prefix)/share/emacs/site-lisp'.
    960 
    961      If you are using Autoconf, write the default as `@lispdir@'.  In
    962      order to make `@lispdir@' work, you need the following lines in
    963      your `configure.in' file:
    964 
    965           lispdir='${datadir}/emacs/site-lisp'
    966           AC_SUBST(lispdir)
     1540   These variables specify the directory for installing certain specific
     1541types of files, if your program has them.  Every GNU package should
     1542have Info files, so every program needs `infodir', but not all need
     1543`libdir' or `lispdir'.
    9671544
    9681545`includedir'
     
    10001577     string in the file--part of a comment--and `grep' for that string.
    10011578
     1579`docdir'
     1580     The directory for installing documentation files (other than Info)
     1581     for this package.  By default, it should be
     1582     `/usr/local/share/doc/YOURPKG', but it should be written as
     1583     `$(datarootdir)/doc/YOURPKG'.  (If you are using Autoconf, write
     1584     it as `@docdir@'.)  The YOURPKG subdirectory, which may include a
     1585     version number, prevents collisions among files with common names,
     1586     such as `README'.
     1587
     1588`infodir'
     1589     The directory for installing the Info files for this package.  By
     1590     default, it should be `/usr/local/share/info', but it should be
     1591     written as `$(datarootdir)/info'.  (If you are using Autoconf,
     1592     write it as `@infodir@'.)  `infodir' is separate from `docdir' for
     1593     compatibility with existing practice.
     1594
     1595`htmldir'
     1596`dvidir'
     1597`pdfdir'
     1598`psdir'
     1599     Directories for installing documentation files in the particular
     1600     format.  (It is not required to support documentation in all these
     1601     formats.)  They should all be set to `$(docdir)' by default.  (If
     1602     you are using Autoconf, write them as `@htmldir@', `@dvidir@',
     1603     etc.)  Packages which supply several translations of their
     1604     documentation should install them in `$(htmldir)/'LL,
     1605     `$(pdfdir)/'LL, etc. where LL is a locale abbreviation such as
     1606     `en' or `pt_BR'.
     1607
     1608`libdir'
     1609     The directory for object files and libraries of object code.  Do
     1610     not install executables here, they probably ought to go in
     1611     `$(libexecdir)' instead.  The value of `libdir' should normally be
     1612     `/usr/local/lib', but write it as `$(exec_prefix)/lib'.  (If you
     1613     are using Autoconf, write it as `@libdir@'.)
     1614
     1615`lispdir'
     1616     The directory for installing any Emacs Lisp files in this package.
     1617     By default, it should be `/usr/local/share/emacs/site-lisp', but
     1618     it should be written as `$(datarootdir)/emacs/site-lisp'.
     1619
     1620     If you are using Autoconf, write the default as `@lispdir@'.  In
     1621     order to make `@lispdir@' work, you need the following lines in
     1622     your `configure.in' file:
     1623
     1624          lispdir='${datarootdir}/emacs/site-lisp'
     1625          AC_SUBST(lispdir)
     1626
     1627`localedir'
     1628     The directory for installing locale-specific message catalogs for
     1629     this package.  By default, it should be `/usr/local/share/locale',
     1630     but it should be written as `$(datarootdir)/locale'.  (If you are
     1631     using Autoconf, write it as `@localedir@'.)  This directory
     1632     usually has a subdirectory per locale.
     1633
    10021634   Unix-style man pages are installed in one of the following:
    10031635
    10041636`mandir'
    10051637     The top-level directory for installing the man pages (if any) for
    1006      this package.  It will normally be `/usr/local/man', but you should
    1007      write it as `$(prefix)/man'.  (If you are using Autoconf, write it
    1008      as `@mandir@'.)
     1638     this package.  It will normally be `/usr/local/share/man', but you
     1639     should write it as `$(datarootdir)/man'.  (If you are using
     1640     Autoconf, write it as `@mandir@'.)
    10091641
    10101642`man1dir'
     
    10491681     # NOTE: This directory must exist when you start the install.
    10501682     prefix = /usr/local
     1683     datarootdir = $(prefix)/share
     1684     datadir = $(datarootdir)
    10511685     exec_prefix = $(prefix)
    10521686     # Where to put the executable for the command `gcc'.
     
    10551689     libexecdir = $(exec_prefix)/libexec
    10561690     # Where to put the Info files.
    1057      infodir = $(prefix)/info
     1691     infodir = $(datarootdir)/info
    10581692
    10591693   If your program installs a large number of files into one of the
     
    10721706File: make.info,  Node: Standard Targets,  Next: Install Command Categories,  Prev: Directory Variables,  Up: Makefile Conventions
    10731707
    1074 Standard Targets for Users
    1075 ==========================
     170814.5 Standard Targets for Users
     1709===============================
    10761710
    10771711All GNU programs should have the following targets in their Makefiles:
     
    11421776     Categories::.
    11431777
     1778`install-html'
     1779`install-dvi'
     1780`install-pdf'
     1781`install-ps'
     1782     These targets install documentation in formats other than Info;
     1783     they're intended to be called explicitly by the person installing
     1784     the package, if that format is desired.  GNU prefers Info files,
     1785     so these must be installed by the `install' target.
     1786
     1787     When you have many documentation files to install, we recommend
     1788     that you avoid collisions and clutter by arranging for these
     1789     targets to install in subdirectories of the appropriate
     1790     installation directory, such as `htmldir'.  As one example, if
     1791     your package has multiple manuals, and you wish to install HTML
     1792     documentation with many files (such as the "split" mode output by
     1793     `makeinfo --html'), you'll certainly want to use subdirectories,
     1794     or two nodes with the same name in different manuals will
     1795     overwrite each other.
     1796
    11441797`uninstall'
    1145      Delete all the installed files--the copies that the `install'
    1146      target creates.
     1798     Delete all the installed files--the copies that the `install' and
     1799     `install-*' targets create.
    11471800
    11481801     This rule should not modify the directories where compilation is
     
    11761829
    11771830`clean'
    1178      Delete all files from the current directory that are normally
    1179      created by building the program.  Don't delete the files that
    1180      record the configuration.  Also preserve files that could be made
    1181      by building, but normally aren't because the distribution comes
    1182      with them.
     1831     Delete all files in the current directory that are normally
     1832     created by building the program.  Also delete files in other
     1833     directories if they are created by this makefile.  However, don't
     1834     delete the files that record the configuration.  Also preserve
     1835     files that could be made by building, but normally aren't because
     1836     the distribution comes with them.  There is no need to delete
     1837     parent directories that were created with `mkdir -p', since they
     1838     could have existed anyway.
    11831839
    11841840     Delete `.dvi' files here if they are not part of the distribution.
    11851841
    11861842`distclean'
    1187      Delete all files from the current directory that are created by
    1188      configuring or building the program.  If you have unpacked the
    1189      source and built the program without creating any other files,
    1190      `make distclean' should leave only the files that were in the
    1191      distribution.
     1843     Delete all files in the current directory (or created by this
     1844     makefile) that are created by configuring or building the program.
     1845     If you have unpacked the source and built the program without
     1846     creating any other files, `make distclean' should leave only the
     1847     files that were in the distribution.  However, there is no need to
     1848     delete parent directories that were created with `mkdir -p', since
     1849     they could have existed anyway.
    11921850
    11931851`mostlyclean'
     
    11981856
    11991857`maintainer-clean'
    1200      Delete almost everything from the current directory that can be
    1201      reconstructed with this Makefile.  This typically includes
    1202      everything deleted by `distclean', plus more: C source files
    1203      produced by Bison, tags tables, Info files, and so on.
     1858     Delete almost everything that can be reconstructed with this
     1859     Makefile.  This typically includes everything deleted by
     1860     `distclean', plus more: C source files produced by Bison, tags
     1861     tables, Info files, and so on.
    12041862
    12051863     The reason we say "almost everything" is that running the command
     
    12081866     generally, `make maintainer-clean' should not delete anything that
    12091867     needs to exist in order to run `configure' and then begin to build
    1210      the program.  This is the only exception; `maintainer-clean' should
     1868     the program.  Also, there is no need to delete parent directories
     1869     that were created with `mkdir -p', since they could have existed
     1870     anyway.  These are the only exceptions; `maintainer-clean' should
    12111871     delete everything else that can be rebuilt.
    12121872
     
    12331893
    12341894          info: foo.info
    1235          
     1895
    12361896          foo.info: foo.texi chap1.texi chap2.texi
    12371897                  $(MAKEINFO) $(srcdir)/foo.texi
     
    12481908
    12491909`dvi'
    1250      Generate DVI files for all Texinfo documentation.  For example:
     1910`html'
     1911`pdf'
     1912`ps'
     1913     Generate documentation files in the given format, if possible.
     1914     Here's an example rule for generating DVI files from Texinfo:
    12511915
    12521916          dvi: foo.dvi
    1253          
     1917
    12541918          foo.dvi: foo.texi chap1.texi chap2.texi
    12551919                  $(TEXI2DVI) $(srcdir)/foo.texi
     
    12591923     distribution.(1)  Alternatively, write just the dependencies, and
    12601924     allow GNU `make' to provide the command.
     1925
     1926     Here's another example, this one for generating HTML from Texinfo:
     1927
     1928          html: foo.html
     1929
     1930          foo.html: foo.texi chap1.texi chap2.texi
     1931                  $(TEXI2HTML) $(srcdir)/foo.texi
     1932
     1933     Again, you would define the variable `TEXI2HTML' in the Makefile;
     1934     for example, it might run `makeinfo --no-split --html' (`makeinfo'
     1935     is part of the Texinfo distribution).
    12611936
    12621937`dist'
     
    13292004File: make.info,  Node: Install Command Categories,  Prev: Standard Targets,  Up: Makefile Conventions
    13302005
    1331 Install Command Categories
    1332 ==========================
     200614.6 Install Command Categories
     2007===============================
    13332008
    13342009When writing the `install' target, you must classify all the commands
     
    14152090   Programs to build binary packages work by extracting the
    14162091pre-installation and post-installation commands.  Here is one way of
    1417 extracting the pre-installation commands:
    1418 
    1419      make -n install -o all \
     2092extracting the pre-installation commands (the `-s' option to `make' is
     2093needed to silence messages about entering subdirectories):
     2094
     2095     make -s -n install -o all \
    14202096           PRE_INSTALL=pre-install \
    14212097           POST_INSTALL=post-install \
     
    14252101where the file `pre-install.awk' could contain this:
    14262102
    1427      $0 ~ /^\t[ \t]*(normal_install|post_install)[ \t]*$/ {on = 0}
     2103     $0 ~ /^(normal-install|post-install)[ \t]*$/ {on = 0}
    14282104     on {print $0}
    1429      $0 ~ /^\t[ \t]*pre_install[ \t]*$/ {on = 1}
    1430 
    1431    The resulting file of pre-installation commands is executed as a
    1432 shell script as part of installing the binary package.
     2105     $0 ~ /^pre-install[ \t]*$/ {on = 1}
    14332106
    14342107
    14352108File: make.info,  Node: Quick Reference,  Next: Error Messages,  Prev: Makefile Conventions,  Up: Top
    14362109
    1437 Quick Reference
    1438 ***************
     2110Appendix A Quick Reference
     2111**************************
    14392112
    14402113This appendix summarizes the directives, text manipulation functions,
     
    15042177     directive.
    15052178
    1506    Here is a summary of the text manipulation functions (*note
    1507 Functions::):
     2179   Here is a summary of the built-in functions (*note Functions::):
    15082180
    15092181`$(subst FROM,TO,TEXT)'
     
    15422214     Functions.
    15432215
     2216`$(word N,TEXT)'
     2217     Extract the Nth word (one-origin) of TEXT.
     2218     *Note Functions for String Substitution and Analysis: Text
     2219     Functions.
     2220
     2221`$(words TEXT)'
     2222     Count the number of words in TEXT.
     2223     *Note Functions for String Substitution and Analysis: Text
     2224     Functions.
     2225
     2226`$(wordlist S,E,TEXT)'
     2227     Returns the list of words in TEXT from S to E.
     2228     *Note Functions for String Substitution and Analysis: Text
     2229     Functions.
     2230
     2231`$(firstword NAMES...)'
     2232     Extract the first word of NAMES.
     2233     *Note Functions for String Substitution and Analysis: Text
     2234     Functions.
     2235
     2236`$(lastword NAMES...)'
     2237     Extract the last word of NAMES.
     2238     *Note Functions for String Substitution and Analysis: Text
     2239     Functions.
     2240
    15442241`$(dir NAMES...)'
    15452242     Extract the directory part of each file name.
     
    15712268     *Note Functions for File Names: File Name Functions.
    15722269
    1573 `$(word N,TEXT)'
    1574      Extract the Nth word (one-origin) of TEXT.
    1575      *Note Functions for File Names: File Name Functions.
    1576 
    1577 `$(words TEXT)'
    1578      Count the number of words in TEXT.
    1579      *Note Functions for File Names: File Name Functions.
    1580 
    1581 `$(wordlist S,E,TEXT)'
    1582      Returns the list of words in TEXT from S to E.
    1583      *Note Functions for File Names: File Name Functions.
    1584 
    1585 `$(firstword NAMES...)'
    1586      Extract the first word of NAMES.
    1587      *Note Functions for File Names: File Name Functions.
    1588 
    15892270`$(wildcard PATTERN...)'
    15902271     Find file names matching a shell file name pattern (_not_ a `%'
     
    15922273     *Note The Function `wildcard': Wildcard Function.
    15932274
     2275`$(realpath NAMES...)'
     2276     For each file name in NAMES, expand to an absolute name that does
     2277     not contain any `.', `..', nor symlinks.
     2278     *Note Functions for File Names: File Name Functions.
     2279
     2280`$(abspath NAMES...)'
     2281     For each file name in NAMES, expand to an absolute name that does
     2282     not contain any `.' or `..' components, but preserves symlinks.
     2283     *Note Functions for File Names: File Name Functions.
     2284
    15942285`$(error TEXT...)'
    15952286     When this function is evaluated, `make' generates a fatal error
     
    16102301     defined.
    16112302     *Note The `origin' Function: Origin Function.
     2303
     2304`$(flavor VARIABLE)'
     2305     Return a string describing the flavor of the `make' variable
     2306     VARIABLE.
     2307     *Note The `flavor' Function: Flavor Function.
    16122308
    16132309`$(foreach VAR,WORDS,TEXT)'
     
    17012397     `/bin/sh'.  You can set `SHELL' in the makefile to change the
    17022398     shell used to run commands.  *Note Command Execution: Execution.
     2399     The `SHELL' variable is handled specially when importing from and
     2400     exporting to the environment.  *Note Choosing the Shell::.
    17032401
    17042402`MAKESHELL'
    17052403     On MS-DOS only, the name of the command interpreter that is to be
    1706      used by `make'. This value takes precedence over the value of
     2404     used by `make'.  This value takes precedence over the value of
    17072405     `SHELL'.  *Note MAKESHELL variable: Execution.
    17082406
     
    17482446File: make.info,  Node: Error Messages,  Next: Complex Makefile,  Prev: Quick Reference,  Up: Top
    17492447
    1750 Errors Generated by Make
    1751 ************************
     2448Appendix B Errors Generated by Make
     2449***********************************
    17522450
    17532451Here is a list of the more common errors you might see generated by
     
    18222520     on the command line, and `make' couldn't find any makefiles to
    18232521     read in.  The latter means that some makefile was found, but it
    1824      didn't contain any default target and none was given on the
    1825      command line.  GNU `make' has nothing to do in these situations.
    1826      *Note Arguments to Specify the Makefile: Makefile Arguments.
     2522     didn't contain any default goal and none was given on the command
     2523     line.  GNU `make' has nothing to do in these situations.  *Note
     2524     Arguments to Specify the Makefile: Makefile Arguments.
    18272525
    18282526`Makefile `XXX' was not found.'
     
    19012599File: make.info,  Node: Complex Makefile,  Next: GNU Free Documentation License,  Prev: Error Messages,  Up: Top
    19022600
    1903 Complex Makefile Example
    1904 ************************
     2601Appendix C Complex Makefile Example
     2602***********************************
    19052603
    19062604Here is the makefile for the GNU `tar' program.  This is a moderately
     
    19382636     # Un*x Makefile for GNU tar program.
    19392637     # Copyright (C) 1991 Free Software Foundation, Inc.
    1940      
     2638
    19412639     # This program is free software; you can redistribute
    19422640     # it and/or modify it under the terms of the GNU
     
    19442642     ...
    19452643     ...
    1946      
     2644
    19472645     SHELL = /bin/sh
    1948      
     2646
    19492647     #### Start of system configuration section. ####
    1950      
     2648
    19512649     srcdir = .
    1952      
     2650
    19532651     # If you use gcc, you should either run the
    19542652     # fixincludes script that comes with it or else use
     
    19592657     INSTALL = /usr/local/bin/install -c
    19602658     INSTALLDATA = /usr/local/bin/install -c -m 644
    1961      
     2659
    19622660     # Things you might add to DEFS:
    19632661     # -DSTDC_HEADERS        If you have ANSI C headers and
     
    20102708     # -DXENIX               If you have sys/inode.h
    20112709     #                       and need it 94 to be included.
    2012      
     2710
    20132711     DEFS =  -DSIGTYPE=int -DDIRENT -DSTRSTR_MISSING \
    20142712             -DVPRINTF_MISSING -DBSD42
     
    20192717     DEF_AR_FILE = /dev/rmt8
    20202718     DEFBLOCKING = 20
    2021      
     2719
    20222720     CDEBUG = -g
    20232721     CFLAGS = $(CDEBUG) -I. -I$(srcdir) $(DEFS) \
     
    20252723             -DDEFBLOCKING=$(DEFBLOCKING)
    20262724     LDFLAGS = -g
    2027      
     2725
    20282726     prefix = /usr/local
    20292727     # Prefix for each installed program,
    20302728     # normally empty or `g'.
    20312729     binprefix =
    2032      
     2730
    20332731     # The directory to install tar in.
    20342732     bindir = $(prefix)/bin
    2035      
     2733
    20362734     # The directory to install the info files in.
    20372735     infodir = $(prefix)/info
    2038      
     2736
    20392737     #### End of system configuration section. ####
    2040      
     2738
    20412739     SRC1 =  tar.c create.c extract.c buffer.c \
    20422740             getoldopt.c update.c gnu.c mangle.c
     
    20582756             msd_dir.h msd_dir.c tcexparg.c \
    20592757             level-0 level-1 backup-specs testpad.c
    2060      
     2758
     2759     .PHONY: all
    20612760     all:    tar rmt tar.info
    2062      
     2761
     2762     .PHONY: tar
    20632763     tar:    $(OBJS)
    20642764             $(CC) $(LDFLAGS) -o $@ $(OBJS) $(LIBS)
    2065      
     2765
    20662766     rmt:    rmt.c
    20672767             $(CC) $(CFLAGS) $(LDFLAGS) -o $@ rmt.c
    2068      
     2768
    20692769     tar.info: tar.texinfo
    20702770             makeinfo tar.texinfo
    2071      
     2771
     2772     .PHONY: install
    20722773     install: all
    20732774             $(INSTALL) tar $(bindir)/$(binprefix)tar
    20742775             -test ! -f rmt || $(INSTALL) rmt /etc/rmt
    20752776             $(INSTALLDATA) $(srcdir)/tar.info* $(infodir)
    2076      
     2777
    20772778     $(OBJS): tar.h port.h testpad.h
    20782779     regex.o buffer.o tar.o: regex.h
    20792780     # getdate.y has 8 shift/reduce conflicts.
    2080      
     2781
    20812782     testpad.h: testpad
    20822783             ./testpad
    2083      
     2784
    20842785     testpad: testpad.o
    20852786             $(CC) -o $@ testpad.o
    2086      
     2787
    20872788     TAGS:   $(SRCS)
    20882789             etags $(SRCS)
    2089      
     2790
     2791     .PHONY: clean
    20902792     clean:
    20912793             rm -f *.o tar rmt testpad testpad.h core
    2092      
     2794
     2795     .PHONY: distclean
    20932796     distclean: clean
    20942797             rm -f TAGS Makefile config.status
    2095      
     2798
     2799     .PHONY: realclean
    20962800     realclean: distclean
    20972801             rm -f tar.info*
    2098      
     2802
     2803     .PHONY: shar
    20992804     shar: $(SRCS) $(AUX)
    21002805             shar $(SRCS) $(AUX) | compress \
     
    21032808                          -e q
    21042809                          version.c`.shar.Z
    2105      
     2810
     2811     .PHONY: dist
    21062812     dist: $(SRCS) $(AUX)
    21072813             echo tar-`sed \
     
    21152821             tar chZf `cat .fname`.tar.Z `cat .fname`
    21162822             -rm -rf `cat .fname` .fname
    2117      
     2823
    21182824     tar.zoo: $(SRCS) $(AUX)
    21192825             -rm -rf tmp.dir
     
    21302836File: make.info,  Node: GNU Free Documentation License,  Next: Concept Index,  Prev: Complex Makefile,  Up: Top
    21312837
    2132 GNU Free Documentation License
    2133 ******************************
    2134 
    2135                         Version 1.1, March 2000
    2136      Copyright (C) 2000 Free Software Foundation, Inc.
    2137      59 Temple Place, Suite 330, Boston, MA  02111-1307, USA
    2138      
     2838Appendix D GNU Free Documentation License
     2839*****************************************
     2840
     2841                      Version 1.2, November 2002
     2842
     2843     Copyright (C) 2000,2001,2002 Free Software Foundation, Inc.
     2844     51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
     2845
    21392846     Everyone is permitted to copy and distribute verbatim copies
    21402847     of this license document, but changing it is not allowed.
     
    21432850
    21442851     The purpose of this License is to make a manual, textbook, or other
    2145      written document "free" in the sense of freedom: to assure everyone
    2146      the effective freedom to copy and redistribute it, with or without
    2147      modifying it, either commercially or noncommercially.  Secondarily,
    2148      this License preserves for the author and publisher a way to get
    2149      credit for their work, while not being considered responsible for
    2150      modifications made by others.
     2852     functional and useful document "free" in the sense of freedom: to
     2853     assure everyone the effective freedom to copy and redistribute it,
     2854     with or without modifying it, either commercially or
     2855     noncommercially.  Secondarily, this License preserves for the
     2856     author and publisher a way to get credit for their work, while not
     2857     being considered responsible for modifications made by others.
    21512858
    21522859     This License is a kind of "copyleft", which means that derivative
     
    21662873  1. APPLICABILITY AND DEFINITIONS
    21672874
    2168      This License applies to any manual or other work that contains a
    2169      notice placed by the copyright holder saying it can be distributed
    2170      under the terms of this License.  The "Document", below, refers to
    2171      any such manual or work.  Any member of the public is a licensee,
    2172      and is addressed as "you".
     2875     This License applies to any manual or other work, in any medium,
     2876     that contains a notice placed by the copyright holder saying it
     2877     can be distributed under the terms of this License.  Such a notice
     2878     grants a world-wide, royalty-free license, unlimited in duration,
     2879     to use that work under the conditions stated herein.  The
     2880     "Document", below, refers to any such manual or work.  Any member
     2881     of the public is a licensee, and is addressed as "you".  You
     2882     accept the license if you copy, modify or distribute the work in a
     2883     way requiring permission under copyright law.
    21732884
    21742885     A "Modified Version" of the Document means any work containing the
     
    21762887     modifications and/or translated into another language.
    21772888
    2178      A "Secondary Section" is a named appendix or a front-matter
    2179      section of the Document that deals exclusively with the
    2180      relationship of the publishers or authors of the Document to the
    2181      Document's overall subject (or to related matters) and contains
    2182      nothing that could fall directly within that overall subject.
    2183      (For example, if the Document is in part a textbook of
    2184      mathematics, a Secondary Section may not explain any mathematics.)
    2185      The relationship could be a matter of historical connection with
    2186      the subject or with related matters, or of legal, commercial,
    2187      philosophical, ethical or political position regarding them.
     2889     A "Secondary Section" is a named appendix or a front-matter section
     2890     of the Document that deals exclusively with the relationship of the
     2891     publishers or authors of the Document to the Document's overall
     2892     subject (or to related matters) and contains nothing that could
     2893     fall directly within that overall subject.  (Thus, if the Document
     2894     is in part a textbook of mathematics, a Secondary Section may not
     2895     explain any mathematics.)  The relationship could be a matter of
     2896     historical connection with the subject or with related matters, or
     2897     of legal, commercial, philosophical, ethical or political position
     2898     regarding them.
    21882899
    21892900     The "Invariant Sections" are certain Secondary Sections whose
    21902901     titles are designated, as being those of Invariant Sections, in
    21912902     the notice that says that the Document is released under this
    2192      License.
     2903     License.  If a section does not fit the above definition of
     2904     Secondary then it is not allowed to be designated as Invariant.
     2905     The Document may contain zero Invariant Sections.  If the Document
     2906     does not identify any Invariant Sections then there are none.
    21932907
    21942908     The "Cover Texts" are certain short passages of text that are
    21952909     listed, as Front-Cover Texts or Back-Cover Texts, in the notice
    2196      that says that the Document is released under this License.
     2910     that says that the Document is released under this License.  A
     2911     Front-Cover Text may be at most 5 words, and a Back-Cover Text may
     2912     be at most 25 words.
    21972913
    21982914     A "Transparent" copy of the Document means a machine-readable copy,
    21992915     represented in a format whose specification is available to the
    2200      general public, whose contents can be viewed and edited directly
    2201      and straightforwardly with generic text editors or (for images
     2916     general public, that is suitable for revising the document
     2917     straightforwardly with generic text editors or (for images
    22022918     composed of pixels) generic paint programs or (for drawings) some
    22032919     widely available drawing editor, and that is suitable for input to
    22042920     text formatters or for automatic translation to a variety of
    22052921     formats suitable for input to text formatters.  A copy made in an
    2206      otherwise Transparent file format whose markup has been designed
    2207      to thwart or discourage subsequent modification by readers is not
    2208      Transparent.  A copy that is not "Transparent" is called "Opaque".
     2922     otherwise Transparent file format whose markup, or absence of
     2923     markup, has been arranged to thwart or discourage subsequent
     2924     modification by readers is not Transparent.  An image format is
     2925     not Transparent if used for any substantial amount of text.  A
     2926     copy that is not "Transparent" is called "Opaque".
    22092927
    22102928     Examples of suitable formats for Transparent copies include plain
    22112929     ASCII without markup, Texinfo input format, LaTeX input format,
    22122930     SGML or XML using a publicly available DTD, and
    2213      standard-conforming simple HTML designed for human modification.
    2214      Opaque formats include PostScript, PDF, proprietary formats that
    2215      can be read and edited only by proprietary word processors, SGML
    2216      or XML for which the DTD and/or processing tools are not generally
    2217      available, and the machine-generated HTML produced by some word
    2218      processors for output purposes only.
     2931     standard-conforming simple HTML, PostScript or PDF designed for
     2932     human modification.  Examples of transparent image formats include
     2933     PNG, XCF and JPG.  Opaque formats include proprietary formats that
     2934     can be read and edited only by proprietary word processors, SGML or
     2935     XML for which the DTD and/or processing tools are not generally
     2936     available, and the machine-generated HTML, PostScript or PDF
     2937     produced by some word processors for output purposes only.
    22192938
    22202939     The "Title Page" means, for a printed book, the title page itself,
     
    22242943     Page" means the text near the most prominent appearance of the
    22252944     work's title, preceding the beginning of the body of the text.
     2945
     2946     A section "Entitled XYZ" means a named subunit of the Document
     2947     whose title either is precisely XYZ or contains XYZ in parentheses
     2948     following text that translates XYZ in another language.  (Here XYZ
     2949     stands for a specific section name mentioned below, such as
     2950     "Acknowledgements", "Dedications", "Endorsements", or "History".)
     2951     To "Preserve the Title" of such a section when you modify the
     2952     Document means that it remains a section "Entitled XYZ" according
     2953     to this definition.
     2954
     2955     The Document may include Warranty Disclaimers next to the notice
     2956     which states that this License applies to the Document.  These
     2957     Warranty Disclaimers are considered to be included by reference in
     2958     this License, but only as regards disclaiming warranties: any other
     2959     implication that these Warranty Disclaimers may have is void and
     2960     has no effect on the meaning of this License.
    22262961
    22272962  2. VERBATIM COPYING
     
    22432978  3. COPYING IN QUANTITY
    22442979
    2245      If you publish printed copies of the Document numbering more than
    2246      100, and the Document's license notice requires Cover Texts, you
    2247      must enclose the copies in covers that carry, clearly and legibly,
    2248      all these Cover Texts: Front-Cover Texts on the front cover, and
     2980     If you publish printed copies (or copies in media that commonly
     2981     have printed covers) of the Document, numbering more than 100, and
     2982     the Document's license notice requires Cover Texts, you must
     2983     enclose the copies in covers that carry, clearly and legibly, all
     2984     these Cover Texts: Front-Cover Texts on the front cover, and
    22492985     Back-Cover Texts on the back cover.  Both covers must also clearly
    22502986     and legibly identify you as the publisher of these copies.  The
     
    22643000     numbering more than 100, you must either include a
    22653001     machine-readable Transparent copy along with each Opaque copy, or
    2266      state in or with each Opaque copy a publicly-accessible
    2267      computer-network location containing a complete Transparent copy
    2268      of the Document, free of added material, which the general
    2269      network-using public has access to download anonymously at no
    2270      charge using public-standard network protocols.  If you use the
     3002     state in or with each Opaque copy a computer-network location from
     3003     which the general network-using public has access to download
     3004     using public-standard network protocols a complete Transparent
     3005     copy of the Document, free of added material.  If you use the
    22713006     latter option, you must take reasonably prudent steps, when you
    22723007     begin distribution of Opaque copies in quantity, to ensure that
     
    23023037          the Modified Version, together with at least five of the
    23033038          principal authors of the Document (all of its principal
    2304           authors, if it has less than five).
     3039          authors, if it has fewer than five), unless they release you
     3040          from this requirement.
    23053041
    23063042       C. State on the Title page the name of the publisher of the
     
    23233059       H. Include an unaltered copy of this License.
    23243060
    2325        I. Preserve the section entitled "History", and its title, and
    2326           add to it an item stating at least the title, year, new
     3061       I. Preserve the section Entitled "History", Preserve its Title,
     3062          and add to it an item stating at least the title, year, new
    23273063          authors, and publisher of the Modified Version as given on
    2328           the Title Page.  If there is no section entitled "History" in
     3064          the Title Page.  If there is no section Entitled "History" in
    23293065          the Document, create one stating the title, year, authors,
    23303066          and publisher of the Document as given on its Title Page,
     
    23413077          it refers to gives permission.
    23423078
    2343        K. In any section entitled "Acknowledgments" or "Dedications",
    2344           preserve the section's title, and preserve in the section all
    2345           the substance and tone of each of the contributor
    2346           acknowledgments and/or dedications given therein.
     3079       K. For any section Entitled "Acknowledgements" or "Dedications",
     3080          Preserve the Title of the section, and preserve in the
     3081          section all the substance and tone of each of the contributor
     3082          acknowledgements and/or dedications given therein.
    23473083
    23483084       L. Preserve all the Invariant Sections of the Document,
     
    23513087          titles.
    23523088
    2353        M. Delete any section entitled "Endorsements".  Such a section
     3089       M. Delete any section Entitled "Endorsements".  Such a section
    23543090          may not be included in the Modified Version.
    23553091
    2356        N. Do not retitle any existing section as "Endorsements" or to
    2357           conflict in title with any Invariant Section.
     3092       N. Do not retitle any existing section to be Entitled
     3093          "Endorsements" or to conflict in title with any Invariant
     3094          Section.
     3095
     3096       O. Preserve any Warranty Disclaimers.
    23583097
    23593098     If the Modified Version includes new front-matter sections or
     
    23653104     other section titles.
    23663105
    2367      You may add a section entitled "Endorsements", provided it contains
     3106     You may add a section Entitled "Endorsements", provided it contains
    23683107     nothing but endorsements of your Modified Version by various
    23693108     parties--for example, statements of peer review or that the text
     
    23933132     all of the Invariant Sections of all of the original documents,
    23943133     unmodified, and list them all as Invariant Sections of your
    2395      combined work in its license notice.
     3134     combined work in its license notice, and that you preserve all
     3135     their Warranty Disclaimers.
    23963136
    23973137     The combined work need only contain one copy of this License, and
     
    24053145     combined work.
    24063146
    2407      In the combination, you must combine any sections entitled
     3147     In the combination, you must combine any sections Entitled
    24083148     "History" in the various original documents, forming one section
    2409      entitled "History"; likewise combine any sections entitled
    2410      "Acknowledgments", and any sections entitled "Dedications".  You
    2411      must delete all sections entitled "Endorsements."
     3149     Entitled "History"; likewise combine any sections Entitled
     3150     "Acknowledgements", and any sections Entitled "Dedications".  You
     3151     must delete all sections Entitled "Endorsements."
    24123152
    24133153  6. COLLECTIONS OF DOCUMENTS
     
    24303170     A compilation of the Document or its derivatives with other
    24313171     separate and independent documents or works, in or on a volume of
    2432      a storage or distribution medium, does not as a whole count as a
    2433      Modified Version of the Document, provided no compilation
    2434      copyright is claimed for the compilation.  Such a compilation is
    2435      called an "aggregate", and this License does not apply to the
    2436      other self-contained works thus compiled with the Document, on
    2437      account of their being thus compiled, if they are not themselves
    2438      derivative works of the Document.
     3172     a storage or distribution medium, is called an "aggregate" if the
     3173     copyright resulting from the compilation is not used to limit the
     3174     legal rights of the compilation's users beyond what the individual
     3175     works permit.  When the Document is included in an aggregate, this
     3176     License does not apply to the other works in the aggregate which
     3177     are not themselves derivative works of the Document.
    24393178
    24403179     If the Cover Text requirement of section 3 is applicable to these
    2441      copies of the Document, then if the Document is less than one
    2442      quarter of the entire aggregate, the Document's Cover Texts may be
    2443      placed on covers that surround only the Document within the
    2444      aggregate.  Otherwise they must appear on covers around the whole
    2445      aggregate.
     3180     copies of the Document, then if the Document is less than one half
     3181     of the entire aggregate, the Document's Cover Texts may be placed
     3182     on covers that bracket the Document within the aggregate, or the
     3183     electronic equivalent of covers if the Document is in electronic
     3184     form.  Otherwise they must appear on printed covers that bracket
     3185     the whole aggregate.
    24463186
    24473187  8. TRANSLATION
     
    24533193     translations of some or all Invariant Sections in addition to the
    24543194     original versions of these Invariant Sections.  You may include a
    2455      translation of this License provided that you also include the
    2456      original English version of this License.  In case of a
    2457      disagreement between the translation and the original English
    2458      version of this License, the original English version will prevail.
     3195     translation of this License, and all the license notices in the
     3196     Document, and any Warranty Disclaimers, provided that you also
     3197     include the original English version of this License and the
     3198     original versions of those notices and disclaimers.  In case of a
     3199     disagreement between the translation and the original version of
     3200     this License or a notice or disclaimer, the original version will
     3201     prevail.
     3202
     3203     If a section in the Document is Entitled "Acknowledgements",
     3204     "Dedications", or "History", the requirement (section 4) to
     3205     Preserve its Title (section 1) will typically require changing the
     3206     actual title.
    24593207
    24603208  9. TERMINATION
     
    24863234     Free Software Foundation.
    24873235
    2488 ADDENDUM: How to use this License for your documents
    2489 ====================================================
     3236D.1 ADDENDUM: How to use this License for your documents
     3237========================================================
    24903238
    24913239To use this License in a document you have written, include a copy of
     
    24953243       Copyright (C)  YEAR  YOUR NAME.
    24963244       Permission is granted to copy, distribute and/or modify this document
    2497        under the terms of the GNU Free Documentation License, Version 1.1
     3245       under the terms of the GNU Free Documentation License, Version 1.2
    24983246       or any later version published by the Free Software Foundation;
    2499        with the Invariant Sections being LIST THEIR TITLES, with the
    2500        Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.
    2501        A copy of the license is included in the section entitled ``GNU
     3247       with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
     3248       Texts.  A copy of the license is included in the section entitled ``GNU
    25023249       Free Documentation License''.
    25033250
    2504    If you have no Invariant Sections, write "with no Invariant Sections"
    2505 instead of saying which ones are invariant.  If you have no Front-Cover
    2506 Texts, write "no Front-Cover Texts" instead of "Front-Cover Texts being
    2507 LIST"; likewise for Back-Cover Texts.
     3251   If you have Invariant Sections, Front-Cover Texts and Back-Cover
     3252Texts, replace the "with...Texts." line with this:
     3253
     3254         with the Invariant Sections being LIST THEIR TITLES, with
     3255         the Front-Cover Texts being LIST, and with the Back-Cover Texts
     3256         being LIST.
     3257
     3258   If you have Invariant Sections without Cover Texts, or some other
     3259combination of the three, merge those two alternatives to suit the
     3260situation.
    25083261
    25093262   If your document contains nontrivial examples of program code, we
     
    25183271*****************
    25193272
     3273[index]
    25203274* Menu:
    25213275
    2522 * # (comments), in commands:             Commands.
    2523 * # (comments), in makefile:             Makefile Contents.
     3276* # (comments), in commands:             Command Syntax.      (line  27)
     3277* # (comments), in makefile:             Makefile Contents.   (line  41)
    25243278* #include:                              Automatic Prerequisites.
    2525 * $$@, support for:                      Automatic Variables.
    2526 * $, in function call:                   Syntax of Functions.
    2527 * $, in rules:                           Rule Syntax.
    2528 * $, in variable name:                   Computed Names.
    2529 * $, in variable reference:              Reference.
    2530 * %, in pattern rules:                   Pattern Intro.
    2531 * %, quoting in patsubst:                Text Functions.
    2532 * %, quoting in static pattern:          Static Usage.
    2533 * %, quoting in vpath:                   Selective Search.
    2534 * %, quoting with \ (backslash) <1>:     Text Functions.
    2535 * %, quoting with \ (backslash) <2>:     Static Usage.
    2536 * %, quoting with \ (backslash):         Selective Search.
    2537 * * (wildcard character):                Wildcards.
     3279                                                              (line  16)
     3280* $, in function call:                   Syntax of Functions. (line   6)
     3281* $, in rules:                           Rule Syntax.         (line  32)
     3282* $, in variable name:                   Computed Names.      (line   6)
     3283* $, in variable reference:              Reference.           (line   6)
     3284* %, in pattern rules:                   Pattern Intro.       (line   9)
     3285* %, quoting in patsubst:                Text Functions.      (line  26)
     3286* %, quoting in static pattern:          Static Usage.        (line  37)
     3287* %, quoting in vpath:                   Selective Search.    (line  38)
     3288* %, quoting with \ (backslash) <1>:     Text Functions.      (line  26)
     3289* %, quoting with \ (backslash) <2>:     Static Usage.        (line  37)
     3290* %, quoting with \ (backslash):         Selective Search.    (line  38)
     3291* * (wildcard character):                Wildcards.           (line   6)
    25383292* +, and command execution:              Instead of Execution.
    2539 * +, and commands:                       MAKE Variable.
    2540 * +, and define:                         Sequences.
    2541 * +=:                                    Appending.
    2542 * +=, expansion:                         Reading Makefiles.
    2543 * ,v (RCS file extension):               Catalogue of Rules.
    2544 * - (in commands):                       Errors.
    2545 * -, and define:                         Sequences.
    2546 * --always-make:                         Options Summary.
    2547 * --assume-new <1>:                      Options Summary.
     3293                                                              (line  58)
     3294* +, and commands:                       MAKE Variable.       (line  18)
     3295* +, and define:                         Sequences.           (line  50)
     3296* +=:                                    Appending.           (line   6)
     3297* +=, expansion:                         Reading Makefiles.   (line  33)
     3298* ,v (RCS file extension):               Catalogue of Rules.  (line 164)
     3299* - (in commands):                       Errors.              (line  19)
     3300* -, and define:                         Sequences.           (line  50)
     3301* --always-make:                         Options Summary.     (line  15)
     3302* --assume-new <1>:                      Options Summary.     (line 242)
    25483303* --assume-new:                          Instead of Execution.
    2549 * --assume-new, and recursion:           Options/Recursion.
    2550 * --assume-old <1>:                      Options Summary.
     3304                                                              (line  33)
     3305* --assume-new, and recursion:           Options/Recursion.   (line  22)
     3306* --assume-old <1>:                      Options Summary.     (line 147)
    25513307* --assume-old:                          Avoiding Compilation.
    2552 * --assume-old, and recursion:           Options/Recursion.
    2553 * --debug:                               Options Summary.
    2554 * --directory <1>:                       Options Summary.
    2555 * --directory:                           Recursion.
    2556 * --directory, and --print-directory:    -w Option.
    2557 * --directory, and recursion:            Options/Recursion.
    2558 * --dry-run <1>:                         Options Summary.
     3308                                                              (line   6)
     3309* --assume-old, and recursion:           Options/Recursion.   (line  22)
     3310* --check-symlink-times:                 Options Summary.     (line 130)
     3311* --debug:                               Options Summary.     (line  42)
     3312* --directory <1>:                       Options Summary.     (line  26)
     3313* --directory:                           Recursion.           (line  20)
     3314* --directory, and --print-directory:    -w Option.           (line  20)
     3315* --directory, and recursion:            Options/Recursion.   (line  22)
     3316* --dry-run <1>:                         Options Summary.     (line 140)
    25593317* --dry-run <2>:                         Instead of Execution.
    2560 * --dry-run:                             Echoing.
    2561 * --environment-overrides:               Options Summary.
    2562 * --file <1>:                            Options Summary.
    2563 * --file <2>:                            Makefile Arguments.
    2564 * --file:                                Makefile Names.
    2565 * --file, and recursion:                 Options/Recursion.
    2566 * --help:                                Options Summary.
    2567 * --ignore-errors <1>:                   Options Summary.
    2568 * --ignore-errors:                       Errors.
    2569 * --include-dir <1>:                     Options Summary.
    2570 * --include-dir:                         Include.
    2571 * --jobs <1>:                            Options Summary.
    2572 * --jobs:                                Parallel.
    2573 * --jobs, and recursion:                 Options/Recursion.
    2574 * --just-print <1>:                      Options Summary.
     3318                                                              (line  14)
     3319* --dry-run:                             Echoing.             (line  18)
     3320* --environment-overrides:               Options Summary.     (line  78)
     3321* --file <1>:                            Options Summary.     (line  84)
     3322* --file <2>:                            Makefile Arguments.  (line   6)
     3323* --file:                                Makefile Names.      (line  23)
     3324* --file, and recursion:                 Options/Recursion.   (line  22)
     3325* --help:                                Options Summary.     (line  90)
     3326* --ignore-errors <1>:                   Options Summary.     (line  94)
     3327* --ignore-errors:                       Errors.              (line  30)
     3328* --include-dir <1>:                     Options Summary.     (line  99)
     3329* --include-dir:                         Include.             (line  52)
     3330* --jobs <1>:                            Options Summary.     (line 106)
     3331* --jobs:                                Parallel.            (line   6)
     3332* --jobs, and recursion:                 Options/Recursion.   (line  25)
     3333* --just-print <1>:                      Options Summary.     (line 139)
    25753334* --just-print <2>:                      Instead of Execution.
    2576 * --just-print:                          Echoing.
    2577 * --keep-going <1>:                      Options Summary.
    2578 * --keep-going <2>:                      Testing.
    2579 * --keep-going:                          Errors.
    2580 * --load-average <1>:                    Options Summary.
    2581 * --load-average:                        Parallel.
    2582 * --makefile <1>:                        Options Summary.
    2583 * --makefile <2>:                        Makefile Arguments.
    2584 * --makefile:                            Makefile Names.
    2585 * --max-load <1>:                        Options Summary.
    2586 * --max-load:                            Parallel.
    2587 * --new-file <1>:                        Options Summary.
     3335                                                              (line  14)
     3336* --just-print:                          Echoing.             (line  18)
     3337* --keep-going <1>:                      Options Summary.     (line 115)
     3338* --keep-going <2>:                      Testing.             (line  16)
     3339* --keep-going:                          Errors.              (line  47)
     3340* --load-average <1>:                    Options Summary.     (line 122)
     3341* --load-average:                        Parallel.            (line  57)
     3342* --makefile <1>:                        Options Summary.     (line  85)
     3343* --makefile <2>:                        Makefile Arguments.  (line   6)
     3344* --makefile:                            Makefile Names.      (line  23)
     3345* --max-load <1>:                        Options Summary.     (line 123)
     3346* --max-load:                            Parallel.            (line  57)
     3347* --new-file <1>:                        Options Summary.     (line 241)
    25883348* --new-file:                            Instead of Execution.
    2589 * --new-file, and recursion:             Options/Recursion.
    2590 * --no-builtin-rules:                    Options Summary.
    2591 * --no-builtin-variables:                Options Summary.
    2592 * --no-keep-going:                       Options Summary.
    2593 * --no-print-directory <1>:              Options Summary.
    2594 * --no-print-directory:                  -w Option.
    2595 * --old-file <1>:                        Options Summary.
     3349                                                              (line  33)
     3350* --new-file, and recursion:             Options/Recursion.   (line  22)
     3351* --no-builtin-rules:                    Options Summary.     (line 175)
     3352* --no-builtin-variables:                Options Summary.     (line 188)
     3353* --no-keep-going:                       Options Summary.     (line 203)
     3354* --no-print-directory <1>:              Options Summary.     (line 233)
     3355* --no-print-directory:                  -w Option.           (line  20)
     3356* --old-file <1>:                        Options Summary.     (line 146)
    25963357* --old-file:                            Avoiding Compilation.
    2597 * --old-file, and recursion:             Options/Recursion.
    2598 * --print-data-base:                     Options Summary.
    2599 * --print-directory:                     Options Summary.
    2600 * --print-directory, and --directory:    -w Option.
    2601 * --print-directory, and recursion:      -w Option.
    2602 * --print-directory, disabling:          -w Option.
    2603 * --question <1>:                        Options Summary.
     3358                                                              (line   6)
     3359* --old-file, and recursion:             Options/Recursion.   (line  22)
     3360* --print-data-base:                     Options Summary.     (line 155)
     3361* --print-directory:                     Options Summary.     (line 225)
     3362* --print-directory, and --directory:    -w Option.           (line  20)
     3363* --print-directory, and recursion:      -w Option.           (line  20)
     3364* --print-directory, disabling:          -w Option.           (line  20)
     3365* --question <1>:                        Options Summary.     (line 167)
    26043366* --question:                            Instead of Execution.
    2605 * --quiet <1>:                           Options Summary.
    2606 * --quiet:                               Echoing.
    2607 * --recon <1>:                           Options Summary.
     3367                                                              (line  25)
     3368* --quiet <1>:                           Options Summary.     (line 198)
     3369* --quiet:                               Echoing.             (line  24)
     3370* --recon <1>:                           Options Summary.     (line 141)
    26083371* --recon <2>:                           Instead of Execution.
    2609 * --recon:                               Echoing.
    2610 * --silent <1>:                          Options Summary.
    2611 * --silent:                              Echoing.
    2612 * --stop:                                Options Summary.
    2613 * --touch <1>:                           Options Summary.
     3372                                                              (line  14)
     3373* --recon:                               Echoing.             (line  18)
     3374* --silent <1>:                          Options Summary.     (line 197)
     3375* --silent:                              Echoing.             (line  24)
     3376* --stop:                                Options Summary.     (line 204)
     3377* --touch <1>:                           Options Summary.     (line 212)
    26143378* --touch:                               Instead of Execution.
    2615 * --touch, and recursion:                MAKE Variable.
    2616 * --version:                             Options Summary.
    2617 * --warn-undefined-variables:            Options Summary.
    2618 * --what-if <1>:                         Options Summary.
     3379                                                              (line  19)
     3380* --touch, and recursion:                MAKE Variable.       (line  34)
     3381* --version:                             Options Summary.     (line 220)
     3382* --warn-undefined-variables:            Options Summary.     (line 251)
     3383* --what-if <1>:                         Options Summary.     (line 240)
    26193384* --what-if:                             Instead of Execution.
    2620 * -B:                                    Options Summary.
    2621 * -b:                                    Options Summary.
    2622 * -C <1>:                                Options Summary.
    2623 * -C:                                    Recursion.
    2624 * -C, and -w:                            -w Option.
    2625 * -C, and recursion:                     Options/Recursion.
    2626 * -d:                                    Options Summary.
    2627 * -e:                                    Options Summary.
     3385                                                              (line  33)
     3386* -B:                                    Options Summary.     (line  14)
     3387* -b:                                    Options Summary.     (line   9)
     3388* -C <1>:                                Options Summary.     (line  25)
     3389* -C:                                    Recursion.           (line  20)
     3390* -C, and -w:                            -w Option.           (line  20)
     3391* -C, and recursion:                     Options/Recursion.   (line  22)
     3392* -d:                                    Options Summary.     (line  33)
     3393* -e:                                    Options Summary.     (line  77)
    26283394* -e (shell flag):                       Automatic Prerequisites.
    2629 * -f <1>:                                Options Summary.
    2630 * -f <2>:                                Makefile Arguments.
    2631 * -f:                                    Makefile Names.
    2632 * -f, and recursion:                     Options/Recursion.
    2633 * -h:                                    Options Summary.
    2634 * -I:                                    Options Summary.
    2635 * -i <1>:                                Options Summary.
    2636 * -i:                                    Errors.
    2637 * -I:                                    Include.
    2638 * -j <1>:                                Options Summary.
    2639 * -j:                                    Parallel.
    2640 * -j, and archive update:                Archive Pitfalls.
    2641 * -j, and recursion:                     Options/Recursion.
    2642 * -k <1>:                                Options Summary.
    2643 * -k <2>:                                Testing.
    2644 * -k:                                    Errors.
    2645 * -l:                                    Options Summary.
    2646 * -l (library search):                   Libraries/Search.
    2647 * -l (load average):                     Parallel.
    2648 * -m:                                    Options Summary.
     3395                                                              (line  66)
     3396* -f <1>:                                Options Summary.     (line  83)
     3397* -f <2>:                                Makefile Arguments.  (line   6)
     3398* -f:                                    Makefile Names.      (line  23)
     3399* -f, and recursion:                     Options/Recursion.   (line  22)
     3400* -h:                                    Options Summary.     (line  89)
     3401* -I:                                    Options Summary.     (line  98)
     3402* -i <1>:                                Options Summary.     (line  93)
     3403* -i:                                    Errors.              (line  30)
     3404* -I:                                    Include.             (line  52)
     3405* -j <1>:                                Options Summary.     (line 105)
     3406* -j:                                    Parallel.            (line   6)
     3407* -j, and archive update:                Archive Pitfalls.    (line   6)
     3408* -j, and recursion:                     Options/Recursion.   (line  25)
     3409* -k <1>:                                Options Summary.     (line 114)
     3410* -k <2>:                                Testing.             (line  16)
     3411* -k:                                    Errors.              (line  47)
     3412* -L:                                    Options Summary.     (line 129)
     3413* -l:                                    Options Summary.     (line 121)
     3414* -l (library search):                   Libraries/Search.    (line   6)
     3415* -l (load average):                     Parallel.            (line  57)
     3416* -m:                                    Options Summary.     (line  10)
    26493417* -M (to compiler):                      Automatic Prerequisites.
     3418                                                              (line  18)
    26503419* -MM (to GNU compiler):                 Automatic Prerequisites.
    2651 * -n <1>:                                Options Summary.
     3420                                                              (line  68)
     3421* -n <1>:                                Options Summary.     (line 138)
    26523422* -n <2>:                                Instead of Execution.
    2653 * -n:                                    Echoing.
    2654 * -o <1>:                                Options Summary.
     3423                                                              (line  14)
     3424* -n:                                    Echoing.             (line  18)
     3425* -o <1>:                                Options Summary.     (line 145)
    26553426* -o:                                    Avoiding Compilation.
    2656 * -o, and recursion:                     Options/Recursion.
    2657 * -p:                                    Options Summary.
    2658 * -q <1>:                                Options Summary.
     3427                                                              (line   6)
     3428* -o, and recursion:                     Options/Recursion.   (line  22)
     3429* -p:                                    Options Summary.     (line 154)
     3430* -q <1>:                                Options Summary.     (line 166)
    26593431* -q:                                    Instead of Execution.
    2660 * -R:                                    Options Summary.
    2661 * -r:                                    Options Summary.
    2662 * -S:                                    Options Summary.
    2663 * -s <1>:                                Options Summary.
    2664 * -s:                                    Echoing.
    2665 * -t <1>:                                Options Summary.
     3432                                                              (line  25)
     3433* -R:                                    Options Summary.     (line 187)
     3434* -r:                                    Options Summary.     (line 174)
     3435* -S:                                    Options Summary.     (line 202)
     3436* -s <1>:                                Options Summary.     (line 196)
     3437* -s:                                    Echoing.             (line  24)
     3438* -t <1>:                                Options Summary.     (line 211)
    26663439* -t:                                    Instead of Execution.
    2667 * -t, and recursion:                     MAKE Variable.
    2668 * -v:                                    Options Summary.
    2669 * -W:                                    Options Summary.
    2670 * -w:                                    Options Summary.
     3440                                                              (line  19)
     3441* -t, and recursion:                     MAKE Variable.       (line  34)
     3442* -v:                                    Options Summary.     (line 219)
     3443* -W:                                    Options Summary.     (line 239)
     3444* -w:                                    Options Summary.     (line 224)
    26713445* -W:                                    Instead of Execution.
    2672 * -w, and -C:                            -w Option.
    2673 * -w, and recursion:                     -w Option.
    2674 * -W, and recursion:                     Options/Recursion.
    2675 * -w, disabling:                         -w Option.
     3446                                                              (line  33)
     3447* -w, and -C:                            -w Option.           (line  20)
     3448* -w, and recursion:                     -w Option.           (line  20)
     3449* -W, and recursion:                     Options/Recursion.   (line  22)
     3450* -w, disabling:                         -w Option.           (line  20)
    26763451* .a (archives):                         Archive Suffix Rules.
    2677 * .C:                                    Catalogue of Rules.
    2678 * .c:                                    Catalogue of Rules.
    2679 * .cc:                                   Catalogue of Rules.
    2680 * .ch:                                   Catalogue of Rules.
     3452                                                              (line   6)
     3453* .C:                                    Catalogue of Rules.  (line  39)
     3454* .c:                                    Catalogue of Rules.  (line  35)
     3455* .cc:                                   Catalogue of Rules.  (line  39)
     3456* .ch:                                   Catalogue of Rules.  (line 151)
     3457* .cpp:                                  Catalogue of Rules.  (line  39)
    26813458* .d:                                    Automatic Prerequisites.
    2682 * .def:                                  Catalogue of Rules.
    2683 * .dvi:                                  Catalogue of Rules.
    2684 * .F:                                    Catalogue of Rules.
    2685 * .f:                                    Catalogue of Rules.
    2686 * .info:                                 Catalogue of Rules.
    2687 * .l:                                    Catalogue of Rules.
    2688 * .LIBPATTERNS, and link libraries:      Libraries/Search.
    2689 * .ln:                                   Catalogue of Rules.
    2690 * .mod:                                  Catalogue of Rules.
    2691 * .o:                                    Catalogue of Rules.
    2692 * .p:                                    Catalogue of Rules.
    2693 * .PRECIOUS intermediate files:          Chained Rules.
    2694 * .r:                                    Catalogue of Rules.
    2695 * .S:                                    Catalogue of Rules.
    2696 * .s:                                    Catalogue of Rules.
    2697 * .sh:                                   Catalogue of Rules.
    2698 * .sym:                                  Catalogue of Rules.
    2699 * .tex:                                  Catalogue of Rules.
    2700 * .texi:                                 Catalogue of Rules.
    2701 * .texinfo:                              Catalogue of Rules.
    2702 * .txinfo:                               Catalogue of Rules.
    2703 * .w:                                    Catalogue of Rules.
    2704 * .web:                                  Catalogue of Rules.
    2705 * .y:                                    Catalogue of Rules.
    2706 * :: rules (double-colon):               Double-Colon.
    2707 * := <1>:                                Setting.
    2708 * :=:                                    Flavors.
    2709 * = <1>:                                 Setting.
    2710 * =:                                     Flavors.
    2711 * =, expansion:                          Reading Makefiles.
    2712 * ? (wildcard character):                Wildcards.
    2713 * ?= <1>:                                Setting.
    2714 * ?=:                                    Flavors.
    2715 * ?=, expansion:                         Reading Makefiles.
    2716 * @ (in commands):                       Echoing.
    2717 * @, and define:                         Sequences.
    2718 * [...] (wildcard characters):           Wildcards.
    2719 * \ (backslash), for continuation lines: Simple Makefile.
    2720 * \ (backslash), in commands:            Execution.
    2721 * \ (backslash), to quote % <1>:         Text Functions.
    2722 * \ (backslash), to quote % <2>:         Static Usage.
    2723 * \ (backslash), to quote %:             Selective Search.
    2724 * __.SYMDEF:                             Archive Symbols.
    2725 * algorithm for directory search:        Search Algorithm.
    2726 * all (standard target):                 Goals.
    2727 * appending to variables:                Appending.
    2728 * ar:                                    Implicit Variables.
    2729 * archive:                               Archives.
    2730 * archive member targets:                Archive Members.
    2731 * archive symbol directory updating:     Archive Symbols.
    2732 * archive, and -j:                       Archive Pitfalls.
    2733 * archive, and parallel execution:       Archive Pitfalls.
     3459                                                              (line  81)
     3460* .def:                                  Catalogue of Rules.  (line  74)
     3461* .dvi:                                  Catalogue of Rules.  (line 151)
     3462* .F:                                    Catalogue of Rules.  (line  49)
     3463* .f:                                    Catalogue of Rules.  (line  49)
     3464* .info:                                 Catalogue of Rules.  (line 158)
     3465* .l:                                    Catalogue of Rules.  (line 124)
     3466* .LIBPATTERNS, and link libraries:      Libraries/Search.    (line   6)
     3467* .ln:                                   Catalogue of Rules.  (line 146)
     3468* .mod:                                  Catalogue of Rules.  (line  74)
     3469* .o:                                    Catalogue of Rules.  (line  35)
     3470* .p:                                    Catalogue of Rules.  (line  45)
     3471* .PRECIOUS intermediate files:          Chained Rules.       (line  56)
     3472* .r:                                    Catalogue of Rules.  (line  49)
     3473* .S:                                    Catalogue of Rules.  (line  82)
     3474* .s:                                    Catalogue of Rules.  (line  79)
     3475* .sh:                                   Catalogue of Rules.  (line 180)
     3476* .sym:                                  Catalogue of Rules.  (line  74)
     3477* .tex:                                  Catalogue of Rules.  (line 151)
     3478* .texi:                                 Catalogue of Rules.  (line 158)
     3479* .texinfo:                              Catalogue of Rules.  (line 158)
     3480* .txinfo:                               Catalogue of Rules.  (line 158)
     3481* .w:                                    Catalogue of Rules.  (line 151)
     3482* .web:                                  Catalogue of Rules.  (line 151)
     3483* .y:                                    Catalogue of Rules.  (line 120)
     3484* :: rules (double-colon):               Double-Colon.        (line   6)
     3485* := <1>:                                Setting.             (line   6)
     3486* :=:                                    Flavors.             (line  56)
     3487* = <1>:                                 Setting.             (line   6)
     3488* =:                                     Flavors.             (line  10)
     3489* =, expansion:                          Reading Makefiles.   (line  33)
     3490* ? (wildcard character):                Wildcards.           (line   6)
     3491* ?= <1>:                                Setting.             (line   6)
     3492* ?=:                                    Flavors.             (line 129)
     3493* ?=, expansion:                         Reading Makefiles.   (line  33)
     3494* @ (in commands):                       Echoing.             (line   6)
     3495* @, and define:                         Sequences.           (line  50)
     3496* [...] (wildcard characters):           Wildcards.           (line   6)
     3497* \ (backslash), for continuation lines: Simple Makefile.     (line  40)
     3498* \ (backslash), in commands:            Splitting Lines.     (line   6)
     3499* \ (backslash), to quote % <1>:         Text Functions.      (line  26)
     3500* \ (backslash), to quote % <2>:         Static Usage.        (line  37)
     3501* \ (backslash), to quote %:             Selective Search.    (line  38)
     3502* __.SYMDEF:                             Archive Symbols.     (line   6)
     3503* abspath:                               File Name Functions. (line 121)
     3504* algorithm for directory search:        Search Algorithm.    (line   6)
     3505* all (standard target):                 Goals.               (line  72)
     3506* appending to variables:                Appending.           (line   6)
     3507* ar:                                    Implicit Variables.  (line  41)
     3508* archive:                               Archives.            (line   6)
     3509* archive member targets:                Archive Members.     (line   6)
     3510* archive symbol directory updating:     Archive Symbols.     (line   6)
     3511* archive, and -j:                       Archive Pitfalls.    (line   6)
     3512* archive, and parallel execution:       Archive Pitfalls.    (line   6)
    27343513* archive, suffix rule for:              Archive Suffix Rules.
    2735 * Arg list too long:                     Options/Recursion.
    2736 * arguments of functions:                Syntax of Functions.
    2737 * as <1>:                                Implicit Variables.
    2738 * as:                                    Catalogue of Rules.
    2739 * assembly, rule to compile:             Catalogue of Rules.
     3514                                                              (line   6)
     3515* Arg list too long:                     Options/Recursion.   (line  57)
     3516* arguments of functions:                Syntax of Functions. (line   6)
     3517* as <1>:                                Implicit Variables.  (line  44)
     3518* as:                                    Catalogue of Rules.  (line  79)
     3519* assembly, rule to compile:             Catalogue of Rules.  (line  79)
    27403520* automatic generation of prerequisites <1>: Automatic Prerequisites.
    2741 * automatic generation of prerequisites: Include.
    2742 * automatic variables:                   Automatic Variables.
    2743 * automatic variables in prerequisites:  Automatic Variables.
    2744 * backquotes:                            Shell Function.
    2745 * backslash (\), for continuation lines: Simple Makefile.
    2746 * backslash (\), in commands:            Execution.
    2747 * backslash (\), to quote % <1>:         Text Functions.
    2748 * backslash (\), to quote % <2>:         Static Usage.
    2749 * backslash (\), to quote %:             Selective Search.
     3521                                                              (line   6)
     3522* automatic generation of prerequisites: Include.             (line  50)
     3523* automatic variables:                   Automatic Variables. (line   6)
     3524* automatic variables in prerequisites:  Automatic Variables. (line  17)
     3525* backquotes:                            Shell Function.      (line   6)
     3526* backslash (\), for continuation lines: Simple Makefile.     (line  40)
     3527* backslash (\), in commands:            Splitting Lines.     (line   6)
     3528* backslash (\), to quote % <1>:         Text Functions.      (line  26)
     3529* backslash (\), to quote % <2>:         Static Usage.        (line  37)
     3530* backslash (\), to quote %:             Selective Search.    (line  38)
    27503531* backslashes in pathnames and wildcard expansion: Wildcard Pitfall.
    2751 * basename:                              File Name Functions.
     3532                                                              (line  31)
     3533* basename:                              File Name Functions. (line  57)
    27523534* binary packages:                       Install Command Categories.
    2753 * broken pipe:                           Parallel.
    2754 * bugs, reporting:                       Bugs.
    2755 * built-in special targets:              Special Targets.
    2756 * C++, rule to compile:                  Catalogue of Rules.
    2757 * C, rule to compile:                    Catalogue of Rules.
    2758 * cc <1>:                                Implicit Variables.
    2759 * cc:                                    Catalogue of Rules.
    2760 * cd (shell command) <1>:                MAKE Variable.
    2761 * cd (shell command):                    Execution.
    2762 * chains of rules:                       Chained Rules.
    2763 * check (standard target):               Goals.
    2764 * clean (standard target):               Goals.
    2765 * clean target <1>:                      Cleanup.
    2766 * clean target:                          Simple Makefile.
    2767 * cleaning up:                           Cleanup.
    2768 * clobber (standard target):             Goals.
    2769 * co <1>:                                Implicit Variables.
    2770 * co:                                    Catalogue of Rules.
     3535                                                              (line  80)
     3536* broken pipe:                           Parallel.            (line  30)
     3537* bugs, reporting:                       Bugs.                (line   6)
     3538* built-in special targets:              Special Targets.     (line   6)
     3539* C++, rule to compile:                  Catalogue of Rules.  (line  39)
     3540* C, rule to compile:                    Catalogue of Rules.  (line  35)
     3541* cc <1>:                                Implicit Variables.  (line  47)
     3542* cc:                                    Catalogue of Rules.  (line  35)
     3543* cd (shell command) <1>:                MAKE Variable.       (line  16)
     3544* cd (shell command):                    Execution.           (line  10)
     3545* chains of rules:                       Chained Rules.       (line   6)
     3546* check (standard target):               Goals.               (line 114)
     3547* clean (standard target):               Goals.               (line  75)
     3548* clean target <1>:                      Cleanup.             (line  11)
     3549* clean target:                          Simple Makefile.     (line  83)
     3550* cleaning up:                           Cleanup.             (line   6)
     3551* clobber (standard target):             Goals.               (line  86)
     3552* co <1>:                                Implicit Variables.  (line  56)
     3553* co:                                    Catalogue of Rules.  (line 164)
    27713554* combining rules by prerequisite:       Combine By Prerequisite.
     3555                                                              (line   6)
    27723556* command line variable definitions, and recursion: Options/Recursion.
    2773 * command line variables:                Overriding.
    2774 * commands:                              Rule Syntax.
    2775 * commands, backslash (\) in:            Execution.
    2776 * commands, comments in:                 Commands.
    2777 * commands, echoing:                     Echoing.
    2778 * commands, empty:                       Empty Commands.
    2779 * commands, errors in:                   Errors.
    2780 * commands, execution:                   Execution.
    2781 * commands, execution in parallel:       Parallel.
    2782 * commands, expansion:                   Shell Function.
    2783 * commands, how to write:                Commands.
     3557                                                              (line  17)
     3558* command line variables:                Overriding.          (line   6)
     3559* command syntax:                        Command Syntax.      (line   6)
     3560* commands:                              Rule Syntax.         (line  26)
     3561* commands setting shell variables:      Execution.           (line  10)
     3562* commands, backslash (\) in:            Splitting Lines.     (line   6)
     3563* commands, comments in:                 Command Syntax.      (line  27)
     3564* commands, echoing:                     Echoing.             (line   6)
     3565* commands, empty:                       Empty Commands.      (line   6)
     3566* commands, errors in:                   Errors.              (line   6)
     3567* commands, execution:                   Execution.           (line   6)
     3568* commands, execution in parallel:       Parallel.            (line   6)
     3569* commands, expansion:                   Shell Function.      (line   6)
     3570* commands, how to write:                Commands.            (line   6)
    27843571* commands, instead of executing:        Instead of Execution.
    2785 * commands, introduction to:             Rule Introduction.
    2786 * commands, quoting newlines in:         Execution.
    2787 * commands, sequences of:                Sequences.
    2788 * comments, in commands:                 Commands.
    2789 * comments, in makefile:                 Makefile Contents.
    2790 * compatibility:                         Features.
    2791 * compatibility in exporting:            Variables/Recursion.
    2792 * compilation, testing:                  Testing.
    2793 * computed variable name:                Computed Names.
    2794 * conditional expansion:                 If Function.
    2795 * conditional variable assignment:       Flavors.
    2796 * conditionals:                          Conditionals.
    2797 * continuation lines:                    Simple Makefile.
     3572                                                              (line   6)
     3573* commands, introduction to:             Rule Introduction.   (line   8)
     3574* commands, quoting newlines in:         Splitting Lines.     (line   6)
     3575* commands, sequences of:                Sequences.           (line   6)
     3576* commands, splitting:                   Splitting Lines.     (line   6)
     3577* commands, using variables in:          Variables in Commands.
     3578                                                              (line   6)
     3579* comments, in commands:                 Command Syntax.      (line  27)
     3580* comments, in makefile:                 Makefile Contents.   (line  41)
     3581* compatibility:                         Features.            (line   6)
     3582* compatibility in exporting:            Variables/Recursion. (line 105)
     3583* compilation, testing:                  Testing.             (line   6)
     3584* computed variable name:                Computed Names.      (line   6)
     3585* conditional expansion:                 Conditional Functions.
     3586                                                              (line   6)
     3587* conditional variable assignment:       Flavors.             (line 129)
     3588* conditionals:                          Conditionals.        (line   6)
     3589* continuation lines:                    Simple Makefile.     (line  40)
    27983590* controlling make:                      Make Control Functions.
     3591                                                              (line   6)
    27993592* conventions for makefiles:             Makefile Conventions.
    2800 * ctangle <1>:                           Implicit Variables.
    2801 * ctangle:                               Catalogue of Rules.
    2802 * cweave <1>:                            Implicit Variables.
    2803 * cweave:                                Catalogue of Rules.
    2804 * data base of make rules:               Options Summary.
    2805 * deducing commands (implicit rules):    make Deduces.
    2806 * default directories for included makefiles: Include.
    2807 * default goal <1>:                      Rules.
    2808 * default goal:                          How Make Works.
    2809 * default makefile name:                 Makefile Names.
    2810 * default rules, last-resort:            Last Resort.
    2811 * define, expansion:                     Reading Makefiles.
    2812 * defining variables verbatim:           Defining.
    2813 * deletion of target files <1>:          Interrupts.
    2814 * deletion of target files:              Errors.
    2815 * directive:                             Makefile Contents.
    2816 * directories, printing them:            -w Option.
    2817 * directories, updating archive symbol:  Archive Symbols.
    2818 * directory part:                        File Name Functions.
    2819 * directory search (VPATH):              Directory Search.
     3593                                                              (line   6)
     3594* ctangle <1>:                           Implicit Variables.  (line 107)
     3595* ctangle:                               Catalogue of Rules.  (line 151)
     3596* cweave <1>:                            Implicit Variables.  (line 101)
     3597* cweave:                                Catalogue of Rules.  (line 151)
     3598* data base of make rules:               Options Summary.     (line 155)
     3599* deducing commands (implicit rules):    make Deduces.        (line   6)
     3600* default directories for included makefiles: Include.        (line  52)
     3601* default goal <1>:                      Rules.               (line  11)
     3602* default goal:                          How Make Works.      (line  11)
     3603* default makefile name:                 Makefile Names.      (line   6)
     3604* default rules, last-resort:            Last Resort.         (line   6)
     3605* define, expansion:                     Reading Makefiles.   (line  33)
     3606* defining variables verbatim:           Defining.            (line   6)
     3607* deletion of target files <1>:          Interrupts.          (line   6)
     3608* deletion of target files:              Errors.              (line  64)
     3609* directive:                             Makefile Contents.   (line  28)
     3610* directories, printing them:            -w Option.           (line   6)
     3611* directories, updating archive symbol:  Archive Symbols.     (line   6)
     3612* directory part:                        File Name Functions. (line  17)
     3613* directory search (VPATH):              Directory Search.    (line   6)
    28203614* directory search (VPATH), and implicit rules: Implicit/Search.
     3615                                                              (line   6)
    28213616* directory search (VPATH), and link libraries: Libraries/Search.
     3617                                                              (line   6)
    28223618* directory search (VPATH), and shell commands: Commands/Search.
    2823 * directory search algorithm:            Search Algorithm.
    2824 * directory search, traditional (GPATH): Search Algorithm.
    2825 * dist (standard target):                Goals.
    2826 * distclean (standard target):           Goals.
    2827 * dollar sign ($), in function call:     Syntax of Functions.
    2828 * dollar sign ($), in rules:             Rule Syntax.
    2829 * dollar sign ($), in variable name:     Computed Names.
    2830 * dollar sign ($), in variable reference: Reference.
    2831 * double-colon rules:                    Double-Colon.
    2832 * duplicate words, removing:             Text Functions.
    2833 * E2BIG:                                 Options/Recursion.
    2834 * echoing of commands:                   Echoing.
    2835 * editor:                                Introduction.
    2836 * Emacs (M-x compile):                   Errors.
    2837 * empty commands:                        Empty Commands.
    2838 * empty targets:                         Empty Targets.
    2839 * environment:                           Environment.
    2840 * environment, and recursion:            Variables/Recursion.
    2841 * environment, SHELL in:                 Execution.
     3619                                                              (line   6)
     3620* directory search algorithm:            Search Algorithm.    (line   6)
     3621* directory search, traditional (GPATH): Search Algorithm.    (line  42)
     3622* dist (standard target):                Goals.               (line 106)
     3623* distclean (standard target):           Goals.               (line  84)
     3624* dollar sign ($), in function call:     Syntax of Functions. (line   6)
     3625* dollar sign ($), in rules:             Rule Syntax.         (line  32)
     3626* dollar sign ($), in variable name:     Computed Names.      (line   6)
     3627* dollar sign ($), in variable reference: Reference.          (line   6)
     3628* DOS, choosing a shell in:              Choosing the Shell.  (line  36)
     3629* double-colon rules:                    Double-Colon.        (line   6)
     3630* duplicate words, removing:             Text Functions.      (line 155)
     3631* E2BIG:                                 Options/Recursion.   (line  57)
     3632* echoing of commands:                   Echoing.             (line   6)
     3633* editor:                                Introduction.        (line  22)
     3634* Emacs (M-x compile):                   Errors.              (line  62)
     3635* empty commands:                        Empty Commands.      (line   6)
     3636* empty targets:                         Empty Targets.       (line   6)
     3637* environment:                           Environment.         (line   6)
     3638* environment, and recursion:            Variables/Recursion. (line   6)
     3639* environment, SHELL in:                 Choosing the Shell.  (line  10)
    28423640* error, stopping on:                    Make Control Functions.
    2843 * errors (in commands):                  Errors.
    2844 * errors with wildcards:                 Wildcard Pitfall.
    2845 * evaluating makefile syntax:            Eval Function.
    2846 * execution, in parallel:                Parallel.
     3641                                                              (line  11)
     3642* errors (in commands):                  Errors.              (line   6)
     3643* errors with wildcards:                 Wildcard Pitfall.    (line   6)
     3644* evaluating makefile syntax:            Eval Function.       (line   6)
     3645* execution, in parallel:                Parallel.            (line   6)
    28473646* execution, instead of:                 Instead of Execution.
    2848 * execution, of commands:                Execution.
    2849 * exit status (errors):                  Errors.
    2850 * explicit rule, definition of:          Makefile Contents.
    2851 * explicit rule, expansion:              Reading Makefiles.
    2852 * exporting variables:                   Variables/Recursion.
    2853 * f77 <1>:                               Implicit Variables.
    2854 * f77:                                   Catalogue of Rules.
     3647                                                              (line   6)
     3648* execution, of commands:                Execution.           (line   6)
     3649* exit status (errors):                  Errors.              (line   6)
     3650* exit status of make:                   Running.             (line  18)
     3651* expansion, secondary:                  Secondary Expansion. (line   6)
     3652* explicit rule, definition of:          Makefile Contents.   (line  10)
     3653* explicit rule, expansion:              Reading Makefiles.   (line  62)
     3654* explicit rules, secondary expansion of: Secondary Expansion.
     3655                                                              (line 106)
     3656* exporting variables:                   Variables/Recursion. (line   6)
     3657* f77 <1>:                               Implicit Variables.  (line  64)
     3658* f77:                                   Catalogue of Rules.  (line  49)
    28553659* FDL, GNU Free Documentation License:   GNU Free Documentation License.
    2856 * features of GNU make:                  Features.
    2857 * features, missing:                     Missing.
    2858 * file name functions:                   File Name Functions.
    2859 * file name of makefile:                 Makefile Names.
    2860 * file name of makefile, how to specify: Makefile Names.
    2861 * file name prefix, adding:              File Name Functions.
    2862 * file name suffix:                      File Name Functions.
    2863 * file name suffix, adding:              File Name Functions.
    2864 * file name with wildcards:              Wildcards.
    2865 * file name, basename of:                File Name Functions.
    2866 * file name, directory part:             File Name Functions.
    2867 * file name, nondirectory part:          File Name Functions.
     3660                                                              (line   6)
     3661* features of GNU make:                  Features.            (line   6)
     3662* features, missing:                     Missing.             (line   6)
     3663* file name functions:                   File Name Functions. (line   6)
     3664* file name of makefile:                 Makefile Names.      (line   6)
     3665* file name of makefile, how to specify: Makefile Names.      (line  30)
     3666* file name prefix, adding:              File Name Functions. (line  79)
     3667* file name suffix:                      File Name Functions. (line  43)
     3668* file name suffix, adding:              File Name Functions. (line  68)
     3669* file name with wildcards:              Wildcards.           (line   6)
     3670* file name, abspath of:                 File Name Functions. (line 121)
     3671* file name, basename of:                File Name Functions. (line  57)
     3672* file name, directory part:             File Name Functions. (line  17)
     3673* file name, nondirectory part:          File Name Functions. (line  27)
     3674* file name, realpath of:                File Name Functions. (line 114)
    28683675* files, assuming new:                   Instead of Execution.
     3676                                                              (line  33)
    28693677* files, assuming old:                   Avoiding Compilation.
     3678                                                              (line   6)
    28703679* files, avoiding recompilation of:      Avoiding Compilation.
    2871 * files, intermediate:                   Chained Rules.
    2872 * filtering out words:                   Text Functions.
    2873 * filtering words:                       Text Functions.
    2874 * finding strings:                       Text Functions.
    2875 * flags:                                 Options Summary.
    2876 * flags for compilers:                   Implicit Variables.
    2877 * flavors of variables:                  Flavors.
    2878 * FORCE:                                 Force Targets.
    2879 * force targets:                         Force Targets.
    2880 * Fortran, rule to compile:              Catalogue of Rules.
    2881 * functions:                             Functions.
     3680                                                              (line   6)
     3681* files, intermediate:                   Chained Rules.       (line  16)
     3682* filtering out words:                   Text Functions.      (line 132)
     3683* filtering words:                       Text Functions.      (line 114)
     3684* finding strings:                       Text Functions.      (line 103)
     3685* flags:                                 Options Summary.     (line   6)
     3686* flags for compilers:                   Implicit Variables.  (line   6)
     3687* flavor of variable:                    Flavor Function.     (line   6)
     3688* flavors of variables:                  Flavors.             (line   6)
     3689* FORCE:                                 Force Targets.       (line   6)
     3690* force targets:                         Force Targets.       (line   6)
     3691* Fortran, rule to compile:              Catalogue of Rules.  (line  49)
     3692* functions:                             Functions.           (line   6)
    28823693* functions, for controlling make:       Make Control Functions.
    2883 * functions, for file names:             File Name Functions.
    2884 * functions, for text:                   Text Functions.
    2885 * functions, syntax of:                  Syntax of Functions.
    2886 * functions, user defined:               Call Function.
    2887 * g++ <1>:                               Implicit Variables.
    2888 * g++:                                   Catalogue of Rules.
    2889 * gcc:                                   Catalogue of Rules.
     3694                                                              (line   6)
     3695* functions, for file names:             File Name Functions. (line   6)
     3696* functions, for text:                   Text Functions.      (line   6)
     3697* functions, syntax of:                  Syntax of Functions. (line   6)
     3698* functions, user defined:               Call Function.       (line   6)
     3699* g++ <1>:                               Implicit Variables.  (line  53)
     3700* g++:                                   Catalogue of Rules.  (line  39)
     3701* gcc:                                   Catalogue of Rules.  (line  35)
    28903702* generating prerequisites automatically <1>: Automatic Prerequisites.
    2891 * generating prerequisites automatically: Include.
    2892 * get <1>:                               Implicit Variables.
    2893 * get:                                   Catalogue of Rules.
    2894 * globbing (wildcards):                  Wildcards.
    2895 * goal:                                  How Make Works.
    2896 * goal, default <1>:                     Rules.
    2897 * goal, default:                         How Make Works.
    2898 * goal, how to specify:                  Goals.
    2899 * home directory:                        Wildcards.
    2900 * IEEE Standard 1003.2:                  Overview.
    2901 * ifdef, expansion:                      Reading Makefiles.
    2902 * ifeq, expansion:                       Reading Makefiles.
    2903 * ifndef, expansion:                     Reading Makefiles.
    2904 * ifneq, expansion:                      Reading Makefiles.
    2905 * implicit rule:                         Implicit Rules.
    2906 * implicit rule, and directory search:   Implicit/Search.
    2907 * implicit rule, and VPATH:              Implicit/Search.
    2908 * implicit rule, definition of:          Makefile Contents.
    2909 * implicit rule, expansion:              Reading Makefiles.
    2910 * implicit rule, how to use:             Using Implicit.
    2911 * implicit rule, introduction to:        make Deduces.
    2912 * implicit rule, predefined:             Catalogue of Rules.
     3703                                                              (line   6)
     3704* generating prerequisites automatically: Include.            (line  50)
     3705* get <1>:                               Implicit Variables.  (line  67)
     3706* get:                                   Catalogue of Rules.  (line 173)
     3707* globbing (wildcards):                  Wildcards.           (line   6)
     3708* goal:                                  How Make Works.      (line  11)
     3709* goal, default <1>:                     Rules.               (line  11)
     3710* goal, default:                         How Make Works.      (line  11)
     3711* goal, how to specify:                  Goals.               (line   6)
     3712* home directory:                        Wildcards.           (line  11)
     3713* IEEE Standard 1003.2:                  Overview.            (line  13)
     3714* ifdef, expansion:                      Reading Makefiles.   (line  51)
     3715* ifeq, expansion:                       Reading Makefiles.   (line  51)
     3716* ifndef, expansion:                     Reading Makefiles.   (line  51)
     3717* ifneq, expansion:                      Reading Makefiles.   (line  51)
     3718* implicit rule:                         Implicit Rules.      (line   6)
     3719* implicit rule, and directory search:   Implicit/Search.     (line   6)
     3720* implicit rule, and VPATH:              Implicit/Search.     (line   6)
     3721* implicit rule, definition of:          Makefile Contents.   (line  16)
     3722* implicit rule, expansion:              Reading Makefiles.   (line  62)
     3723* implicit rule, how to use:             Using Implicit.      (line   6)
     3724* implicit rule, introduction to:        make Deduces.        (line   6)
     3725* implicit rule, predefined:             Catalogue of Rules.  (line   6)
    29133726* implicit rule, search algorithm:       Implicit Rule Search.
    2914 * included makefiles, default directories: Include.
     3727                                                              (line   6)
     3728* implicit rules, secondary expansion of: Secondary Expansion.
     3729                                                              (line 146)
     3730* included makefiles, default directories: Include.           (line  52)
    29153731* including (MAKEFILE_LIST variable):    MAKEFILE_LIST Variable.
    2916 * including (MAKEFILES variable):        MAKEFILES Variable.
    2917 * including other makefiles:             Include.
    2918 * incompatibilities:                     Missing.
    2919 * Info, rule to format:                  Catalogue of Rules.
    2920 * install (standard target):             Goals.
    2921 * intermediate files:                    Chained Rules.
    2922 * intermediate files, preserving:        Chained Rules.
    2923 * intermediate targets, explicit:        Special Targets.
    2924 * interrupt:                             Interrupts.
    2925 * job slots:                             Parallel.
    2926 * job slots, and recursion:              Options/Recursion.
    2927 * jobs, limiting based on load:          Parallel.
    2928 * joining lists of words:                File Name Functions.
    2929 * killing (interruption):                Interrupts.
    2930 * last-resort default rules:             Last Resort.
    2931 * ld:                                    Catalogue of Rules.
    2932 * lex <1>:                               Implicit Variables.
    2933 * lex:                                   Catalogue of Rules.
    2934 * Lex, rule to run:                      Catalogue of Rules.
    2935 * libraries for linking, directory search: Libraries/Search.
     3732                                                              (line   6)
     3733* including (MAKEFILES variable):        MAKEFILES Variable.  (line   6)
     3734* including other makefiles:             Include.             (line   6)
     3735* incompatibilities:                     Missing.             (line   6)
     3736* Info, rule to format:                  Catalogue of Rules.  (line 158)
     3737* install (standard target):             Goals.               (line  92)
     3738* intermediate files:                    Chained Rules.       (line  16)
     3739* intermediate files, preserving:        Chained Rules.       (line  46)
     3740* intermediate targets, explicit:        Special Targets.     (line  44)
     3741* interrupt:                             Interrupts.          (line   6)
     3742* job slots:                             Parallel.            (line   6)
     3743* job slots, and recursion:              Options/Recursion.   (line  25)
     3744* jobs, limiting based on load:          Parallel.            (line  57)
     3745* joining lists of words:                File Name Functions. (line  90)
     3746* killing (interruption):                Interrupts.          (line   6)
     3747* last-resort default rules:             Last Resort.         (line   6)
     3748* ld:                                    Catalogue of Rules.  (line  86)
     3749* lex <1>:                               Implicit Variables.  (line  71)
     3750* lex:                                   Catalogue of Rules.  (line 124)
     3751* Lex, rule to run:                      Catalogue of Rules.  (line 124)
     3752* libraries for linking, directory search: Libraries/Search.  (line   6)
    29363753* library archive, suffix rule for:      Archive Suffix Rules.
    2937 * limiting jobs based on load:           Parallel.
    2938 * link libraries, and directory search:  Libraries/Search.
    2939 * link libraries, patterns matching:     Libraries/Search.
    2940 * linking, predefined rule for:          Catalogue of Rules.
    2941 * lint:                                  Catalogue of Rules.
    2942 * lint, rule to run:                     Catalogue of Rules.
    2943 * list of all prerequisites:             Automatic Variables.
    2944 * list of changed prerequisites:         Automatic Variables.
    2945 * load average:                          Parallel.
    2946 * loops in variable expansion:           Flavors.
    2947 * lpr (shell command) <1>:               Empty Targets.
    2948 * lpr (shell command):                   Wildcard Examples.
    2949 * m2c:                                   Catalogue of Rules.
    2950 * macro:                                 Using Variables.
     3754                                                              (line   6)
     3755* limiting jobs based on load:           Parallel.            (line  57)
     3756* link libraries, and directory search:  Libraries/Search.    (line   6)
     3757* link libraries, patterns matching:     Libraries/Search.    (line   6)
     3758* linking, predefined rule for:          Catalogue of Rules.  (line  86)
     3759* lint <1>:                              Implicit Variables.  (line  78)
     3760* lint:                                  Catalogue of Rules.  (line 146)
     3761* lint, rule to run:                     Catalogue of Rules.  (line 146)
     3762* list of all prerequisites:             Automatic Variables. (line  61)
     3763* list of changed prerequisites:         Automatic Variables. (line  51)
     3764* load average:                          Parallel.            (line  57)
     3765* loops in variable expansion:           Flavors.             (line  44)
     3766* lpr (shell command) <1>:               Empty Targets.       (line  25)
     3767* lpr (shell command):                   Wildcard Examples.   (line  21)
     3768* m2c <1>:                               Implicit Variables.  (line  81)
     3769* m2c:                                   Catalogue of Rules.  (line  74)
     3770* macro:                                 Using Variables.     (line  10)
    29513771* make depend:                           Automatic Prerequisites.
    2952 * MAKECMDGOALS:                          Goals.
    2953 * makefile:                              Introduction.
    2954 * makefile name:                         Makefile Names.
    2955 * makefile name, how to specify:         Makefile Names.
    2956 * makefile rule parts:                   Rule Introduction.
    2957 * makefile syntax, evaluating:           Eval Function.
    2958 * makefile, and MAKEFILES variable:      MAKEFILES Variable.
     3772                                                              (line  37)
     3773* makefile:                              Introduction.        (line   7)
     3774* makefile name:                         Makefile Names.      (line   6)
     3775* makefile name, how to specify:         Makefile Names.      (line  30)
     3776* makefile rule parts:                   Rule Introduction.   (line   6)
     3777* makefile syntax, evaluating:           Eval Function.       (line   6)
     3778* makefile, and MAKEFILES variable:      MAKEFILES Variable.  (line   6)
    29593779* makefile, conventions for:             Makefile Conventions.
    2960 * makefile, how make processes:          How Make Works.
    2961 * makefile, how to write:                Makefiles.
    2962 * makefile, including:                   Include.
     3780                                                              (line   6)
     3781* makefile, how make processes:          How Make Works.      (line   6)
     3782* makefile, how to write:                Makefiles.           (line   6)
     3783* makefile, including:                   Include.             (line   6)
    29633784* makefile, overriding:                  Overriding Makefiles.
    2964 * makefile, parsing:                     Reading Makefiles.
    2965 * makefile, remaking of:                 Remaking Makefiles.
    2966 * makefile, simple:                      Simple Makefile.
     3785                                                              (line   6)
     3786* makefile, parsing:                     Reading Makefiles.   (line   6)
     3787* makefile, remaking of:                 Remaking Makefiles.  (line   6)
     3788* makefile, simple:                      Simple Makefile.     (line   6)
    29673789* makefiles, and MAKEFILE_LIST variable: MAKEFILE_LIST Variable.
    2968 * makefiles, and special variables:      Special Variables.
    2969 * makeinfo <1>:                          Implicit Variables.
    2970 * makeinfo:                              Catalogue of Rules.
     3790                                                              (line   6)
     3791* makefiles, and special variables:      Special Variables.   (line   6)
     3792* makeinfo <1>:                          Implicit Variables.  (line  88)
     3793* makeinfo:                              Catalogue of Rules.  (line 158)
    29713794* match-anything rule:                   Match-Anything Rules.
     3795                                                              (line   6)
    29723796* match-anything rule, used to override: Overriding Makefiles.
    2973 * missing features:                      Missing.
    2974 * mistakes with wildcards:               Wildcard Pitfall.
    2975 * modified variable reference:           Substitution Refs.
    2976 * Modula-2, rule to compile:             Catalogue of Rules.
    2977 * mostlyclean (standard target):         Goals.
    2978 * multiple rules for one target:         Multiple Rules.
    2979 * multiple rules for one target (::):    Double-Colon.
    2980 * multiple targets:                      Multiple Targets.
    2981 * multiple targets, in pattern rule:     Pattern Intro.
    2982 * name of makefile:                      Makefile Names.
    2983 * name of makefile, how to specify:      Makefile Names.
    2984 * nested variable reference:             Computed Names.
    2985 * newline, quoting, in commands:         Execution.
    2986 * newline, quoting, in makefile:         Simple Makefile.
    2987 * nondirectory part:                     File Name Functions.
    2988 * normal prerequisites:                  Prerequisite Types.
    2989 * OBJ:                                   Variables Simplify.
    2990 * obj:                                   Variables Simplify.
    2991 * OBJECTS:                               Variables Simplify.
    2992 * objects:                               Variables Simplify.
    2993 * OBJS:                                  Variables Simplify.
    2994 * objs:                                  Variables Simplify.
    2995 * old-fashioned suffix rules:            Suffix Rules.
    2996 * options:                               Options Summary.
    2997 * options, and recursion:                Options/Recursion.
    2998 * options, setting from environment:     Options/Recursion.
    2999 * options, setting in makefiles:         Options/Recursion.
    3000 * order of pattern rules:                Pattern Intro.
    3001 * order-only prerequisites:              Prerequisite Types.
    3002 * origin of variable:                    Origin Function.
     3797                                                              (line  12)
     3798* missing features:                      Missing.             (line   6)
     3799* mistakes with wildcards:               Wildcard Pitfall.    (line   6)
     3800* modified variable reference:           Substitution Refs.   (line   6)
     3801* Modula-2, rule to compile:             Catalogue of Rules.  (line  74)
     3802* mostlyclean (standard target):         Goals.               (line  78)
     3803* multiple rules for one target:         Multiple Rules.      (line   6)
     3804* multiple rules for one target (::):    Double-Colon.        (line   6)
     3805* multiple targets:                      Multiple Targets.    (line   6)
     3806* multiple targets, in pattern rule:     Pattern Intro.       (line  49)
     3807* name of makefile:                      Makefile Names.      (line   6)
     3808* name of makefile, how to specify:      Makefile Names.      (line  30)
     3809* nested variable reference:             Computed Names.      (line   6)
     3810* newline, quoting, in commands:         Splitting Lines.     (line   6)
     3811* newline, quoting, in makefile:         Simple Makefile.     (line  40)
     3812* nondirectory part:                     File Name Functions. (line  27)
     3813* normal prerequisites:                  Prerequisite Types.  (line   6)
     3814* OBJ:                                   Variables Simplify.  (line  20)
     3815* obj:                                   Variables Simplify.  (line  20)
     3816* OBJECTS:                               Variables Simplify.  (line  20)
     3817* objects:                               Variables Simplify.  (line  14)
     3818* OBJS:                                  Variables Simplify.  (line  20)
     3819* objs:                                  Variables Simplify.  (line  20)
     3820* old-fashioned suffix rules:            Suffix Rules.        (line   6)
     3821* options:                               Options Summary.     (line   6)
     3822* options, and recursion:                Options/Recursion.   (line   6)
     3823* options, setting from environment:     Options/Recursion.   (line  81)
     3824* options, setting in makefiles:         Options/Recursion.   (line  81)
     3825* order of pattern rules:                Pattern Intro.       (line  57)
     3826* order-only prerequisites:              Prerequisite Types.  (line   6)
     3827* origin of variable:                    Origin Function.     (line   6)
    30033828* overriding makefiles:                  Overriding Makefiles.
    3004 * overriding variables with arguments:   Overriding.
    3005 * overriding with override:              Override Directive.
    3006 * parallel execution:                    Parallel.
    3007 * parallel execution, and archive update: Archive Pitfalls.
    3008 * parallel execution, overriding:        Special Targets.
    3009 * parts of makefile rule:                Rule Introduction.
    3010 * Pascal, rule to compile:               Catalogue of Rules.
    3011 * pattern rule:                          Pattern Intro.
    3012 * pattern rule, expansion:               Reading Makefiles.
    3013 * pattern rules, order of:               Pattern Intro.
    3014 * pattern rules, static (not implicit):  Static Pattern.
    3015 * pattern rules, static, syntax of:      Static Usage.
    3016 * pattern-specific variables:            Pattern-specific.
    3017 * pc <1>:                                Implicit Variables.
    3018 * pc:                                    Catalogue of Rules.
    3019 * phony targets:                         Phony Targets.
    3020 * pitfalls of wildcards:                 Wildcard Pitfall.
    3021 * portability:                           Features.
    3022 * POSIX:                                 Overview.
    3023 * POSIX.2:                               Options/Recursion.
     3829                                                              (line   6)
     3830* overriding variables with arguments:   Overriding.          (line   6)
     3831* overriding with override:              Override Directive.  (line   6)
     3832* parallel execution:                    Parallel.            (line   6)
     3833* parallel execution, and archive update: Archive Pitfalls.   (line   6)
     3834* parallel execution, overriding:        Special Targets.     (line 135)
     3835* parts of makefile rule:                Rule Introduction.   (line   6)
     3836* Pascal, rule to compile:               Catalogue of Rules.  (line  45)
     3837* pattern rule:                          Pattern Intro.       (line   6)
     3838* pattern rule, expansion:               Reading Makefiles.   (line  62)
     3839* pattern rules, order of:               Pattern Intro.       (line  57)
     3840* pattern rules, static (not implicit):  Static Pattern.      (line   6)
     3841* pattern rules, static, syntax of:      Static Usage.        (line   6)
     3842* pattern-specific variables:            Pattern-specific.    (line   6)
     3843* pc <1>:                                Implicit Variables.  (line  84)
     3844* pc:                                    Catalogue of Rules.  (line  45)
     3845* phony targets:                         Phony Targets.       (line   6)
     3846* pitfalls of wildcards:                 Wildcard Pitfall.    (line   6)
     3847* portability:                           Features.            (line   6)
     3848* POSIX:                                 Overview.            (line  13)
     3849* POSIX.2:                               Options/Recursion.   (line  60)
    30243850* post-installation commands:            Install Command Categories.
     3851                                                              (line   6)
    30253852* pre-installation commands:             Install Command Categories.
    3026 * precious targets:                      Special Targets.
    3027 * predefined rules and variables, printing: Options Summary.
    3028 * prefix, adding:                        File Name Functions.
    3029 * prerequisite:                          Rules.
    3030 * prerequisite pattern, implicit:        Pattern Intro.
    3031 * prerequisite pattern, static (not implicit): Static Usage.
    3032 * prerequisite types:                    Prerequisite Types.
    3033 * prerequisite, expansion:               Reading Makefiles.
    3034 * prerequisites:                         Rule Syntax.
     3853                                                              (line   6)
     3854* precious targets:                      Special Targets.     (line  29)
     3855* predefined rules and variables, printing: Options Summary.  (line 155)
     3856* prefix, adding:                        File Name Functions. (line  79)
     3857* prerequisite:                          Rules.               (line   6)
     3858* prerequisite pattern, implicit:        Pattern Intro.       (line  22)
     3859* prerequisite pattern, static (not implicit): Static Usage.  (line  30)
     3860* prerequisite types:                    Prerequisite Types.  (line   6)
     3861* prerequisite, expansion:               Reading Makefiles.   (line  62)
     3862* prerequisites:                         Rule Syntax.         (line  46)
    30353863* prerequisites, and automatic variables: Automatic Variables.
     3864                                                              (line  17)
    30363865* prerequisites, automatic generation <1>: Automatic Prerequisites.
    3037 * prerequisites, automatic generation:   Include.
    3038 * prerequisites, introduction to:        Rule Introduction.
    3039 * prerequisites, list of all:            Automatic Variables.
    3040 * prerequisites, list of changed:        Automatic Variables.
    3041 * prerequisites, normal:                 Prerequisite Types.
    3042 * prerequisites, order-only:             Prerequisite Types.
    3043 * prerequisites, varying (static pattern): Static Pattern.
    3044 * preserving intermediate files:         Chained Rules.
    3045 * preserving with .PRECIOUS <1>:         Chained Rules.
    3046 * preserving with .PRECIOUS:             Special Targets.
    3047 * preserving with .SECONDARY:            Special Targets.
    3048 * print (standard target):               Goals.
    3049 * print target <1>:                      Empty Targets.
    3050 * print target:                          Wildcard Examples.
    3051 * printing directories:                  -w Option.
    3052 * printing of commands:                  Echoing.
     3866                                                              (line   6)
     3867* prerequisites, automatic generation:   Include.             (line  50)
     3868* prerequisites, introduction to:        Rule Introduction.   (line   8)
     3869* prerequisites, list of all:            Automatic Variables. (line  61)
     3870* prerequisites, list of changed:        Automatic Variables. (line  51)
     3871* prerequisites, normal:                 Prerequisite Types.  (line   6)
     3872* prerequisites, order-only:             Prerequisite Types.  (line   6)
     3873* prerequisites, varying (static pattern): Static Pattern.    (line   6)
     3874* preserving intermediate files:         Chained Rules.       (line  46)
     3875* preserving with .PRECIOUS <1>:         Chained Rules.       (line  56)
     3876* preserving with .PRECIOUS:             Special Targets.     (line  29)
     3877* preserving with .SECONDARY:            Special Targets.     (line  49)
     3878* print (standard target):               Goals.               (line  97)
     3879* print target <1>:                      Empty Targets.       (line  25)
     3880* print target:                          Wildcard Examples.   (line  21)
     3881* printing directories:                  -w Option.           (line   6)
     3882* printing messages:                     Make Control Functions.
     3883                                                              (line  43)
     3884* printing of commands:                  Echoing.             (line   6)
    30533885* printing user warnings:                Make Control Functions.
    3054 * problems and bugs, reporting:          Bugs.
    3055 * problems with wildcards:               Wildcard Pitfall.
    3056 * processing a makefile:                 How Make Works.
     3886                                                              (line  35)
     3887* problems and bugs, reporting:          Bugs.                (line   6)
     3888* problems with wildcards:               Wildcard Pitfall.    (line   6)
     3889* processing a makefile:                 How Make Works.      (line   6)
    30573890* question mode:                         Instead of Execution.
    3058 * quoting %, in patsubst:                Text Functions.
    3059 * quoting %, in static pattern:          Static Usage.
    3060 * quoting %, in vpath:                   Selective Search.
    3061 * quoting newline, in commands:          Execution.
    3062 * quoting newline, in makefile:          Simple Makefile.
    3063 * Ratfor, rule to compile:               Catalogue of Rules.
    3064 * RCS, rule to extract from:             Catalogue of Rules.
    3065 * reading makefiles:                     Reading Makefiles.
    3066 * README:                                Makefile Names.
    3067 * realclean (standard target):           Goals.
    3068 * recompilation:                         Introduction.
     3891                                                              (line  25)
     3892* quoting %, in patsubst:                Text Functions.      (line  26)
     3893* quoting %, in static pattern:          Static Usage.        (line  37)
     3894* quoting %, in vpath:                   Selective Search.    (line  38)
     3895* quoting newline, in commands:          Splitting Lines.     (line   6)
     3896* quoting newline, in makefile:          Simple Makefile.     (line  40)
     3897* Ratfor, rule to compile:               Catalogue of Rules.  (line  49)
     3898* RCS, rule to extract from:             Catalogue of Rules.  (line 164)
     3899* reading makefiles:                     Reading Makefiles.   (line   6)
     3900* README:                                Makefile Names.      (line   9)
     3901* realclean (standard target):           Goals.               (line  85)
     3902* realpath:                              File Name Functions. (line 114)
     3903* recompilation:                         Introduction.        (line  22)
    30693904* recompilation, avoiding:               Avoiding Compilation.
    3070 * recording events with empty targets:   Empty Targets.
    3071 * recursion:                             Recursion.
    3072 * recursion, and -C:                     Options/Recursion.
    3073 * recursion, and -f:                     Options/Recursion.
    3074 * recursion, and -j:                     Options/Recursion.
    3075 * recursion, and -o:                     Options/Recursion.
    3076 * recursion, and -t:                     MAKE Variable.
    3077 * recursion, and -w:                     -w Option.
    3078 * recursion, and -W:                     Options/Recursion.
     3905                                                              (line   6)
     3906* recording events with empty targets:   Empty Targets.       (line   6)
     3907* recursion:                             Recursion.           (line   6)
     3908* recursion, and -C:                     Options/Recursion.   (line  22)
     3909* recursion, and -f:                     Options/Recursion.   (line  22)
     3910* recursion, and -j:                     Options/Recursion.   (line  25)
     3911* recursion, and -o:                     Options/Recursion.   (line  22)
     3912* recursion, and -t:                     MAKE Variable.       (line  34)
     3913* recursion, and -w:                     -w Option.           (line  20)
     3914* recursion, and -W:                     Options/Recursion.   (line  22)
    30793915* recursion, and command line variable definitions: Options/Recursion.
    3080 * recursion, and environment:            Variables/Recursion.
    3081 * recursion, and MAKE variable:          MAKE Variable.
    3082 * recursion, and MAKEFILES variable:     MAKEFILES Variable.
    3083 * recursion, and options:                Options/Recursion.
    3084 * recursion, and printing directories:   -w Option.
    3085 * recursion, and variables:              Variables/Recursion.
    3086 * recursion, level of:                   Variables/Recursion.
    3087 * recursive variable expansion <1>:      Flavors.
    3088 * recursive variable expansion:          Using Variables.
    3089 * recursively expanded variables:        Flavors.
    3090 * reference to variables <1>:            Advanced.
    3091 * reference to variables:                Reference.
    3092 * relinking:                             How Make Works.
    3093 * remaking makefiles:                    Remaking Makefiles.
    3094 * removal of target files <1>:           Interrupts.
    3095 * removal of target files:               Errors.
    3096 * removing duplicate words:              Text Functions.
    3097 * removing targets on failure:           Special Targets.
    3098 * removing, to clean up:                 Cleanup.
    3099 * reporting bugs:                        Bugs.
    3100 * rm:                                    Implicit Variables.
    3101 * rm (shell command) <1>:                Errors.
    3102 * rm (shell command) <2>:                Phony Targets.
    3103 * rm (shell command) <3>:                Wildcard Examples.
    3104 * rm (shell command):                    Simple Makefile.
    3105 * rule commands:                         Commands.
    3106 * rule prerequisites:                    Rule Syntax.
    3107 * rule syntax:                           Rule Syntax.
    3108 * rule targets:                          Rule Syntax.
    3109 * rule, and $:                           Rule Syntax.
    3110 * rule, double-colon (::):               Double-Colon.
    3111 * rule, explicit, definition of:         Makefile Contents.
    3112 * rule, how to write:                    Rules.
    3113 * rule, implicit:                        Implicit Rules.
    3114 * rule, implicit, and directory search:  Implicit/Search.
    3115 * rule, implicit, and VPATH:             Implicit/Search.
    3116 * rule, implicit, chains of:             Chained Rules.
    3117 * rule, implicit, definition of:         Makefile Contents.
    3118 * rule, implicit, how to use:            Using Implicit.
    3119 * rule, implicit, introduction to:       make Deduces.
    3120 * rule, implicit, predefined:            Catalogue of Rules.
    3121 * rule, introduction to:                 Rule Introduction.
    3122 * rule, multiple for one target:         Multiple Rules.
    3123 * rule, no commands or prerequisites:    Force Targets.
    3124 * rule, pattern:                         Pattern Intro.
    3125 * rule, static pattern:                  Static Pattern.
     3916                                                              (line  17)
     3917* recursion, and environment:            Variables/Recursion. (line   6)
     3918* recursion, and MAKE variable:          MAKE Variable.       (line   6)
     3919* recursion, and MAKEFILES variable:     MAKEFILES Variable.  (line  14)
     3920* recursion, and options:                Options/Recursion.   (line   6)
     3921* recursion, and printing directories:   -w Option.           (line   6)
     3922* recursion, and variables:              Variables/Recursion. (line   6)
     3923* recursion, level of:                   Variables/Recursion. (line 115)
     3924* recursive variable expansion <1>:      Flavors.             (line   6)
     3925* recursive variable expansion:          Using Variables.     (line   6)
     3926* recursively expanded variables:        Flavors.             (line   6)
     3927* reference to variables <1>:            Advanced.            (line   6)
     3928* reference to variables:                Reference.           (line   6)
     3929* relinking:                             How Make Works.      (line  46)
     3930* remaking makefiles:                    Remaking Makefiles.  (line   6)
     3931* removal of target files <1>:           Interrupts.          (line   6)
     3932* removal of target files:               Errors.              (line  64)
     3933* removing duplicate words:              Text Functions.      (line 155)
     3934* removing targets on failure:           Special Targets.     (line  68)
     3935* removing, to clean up:                 Cleanup.             (line   6)
     3936* reporting bugs:                        Bugs.                (line   6)
     3937* rm:                                    Implicit Variables.  (line 110)
     3938* rm (shell command) <1>:                Errors.              (line  27)
     3939* rm (shell command) <2>:                Phony Targets.       (line  20)
     3940* rm (shell command) <3>:                Wildcard Examples.   (line  12)
     3941* rm (shell command):                    Simple Makefile.     (line  83)
     3942* rule commands:                         Commands.            (line   6)
     3943* rule prerequisites:                    Rule Syntax.         (line  46)
     3944* rule syntax:                           Rule Syntax.         (line   6)
     3945* rule targets:                          Rule Syntax.         (line  18)
     3946* rule, double-colon (::):               Double-Colon.        (line   6)
     3947* rule, explicit, definition of:         Makefile Contents.   (line  10)
     3948* rule, how to write:                    Rules.               (line   6)
     3949* rule, implicit:                        Implicit Rules.      (line   6)
     3950* rule, implicit, and directory search:  Implicit/Search.     (line   6)
     3951* rule, implicit, and VPATH:             Implicit/Search.     (line   6)
     3952* rule, implicit, chains of:             Chained Rules.       (line   6)
     3953* rule, implicit, definition of:         Makefile Contents.   (line  16)
     3954* rule, implicit, how to use:            Using Implicit.      (line   6)
     3955* rule, implicit, introduction to:       make Deduces.        (line   6)
     3956* rule, implicit, predefined:            Catalogue of Rules.  (line   6)
     3957* rule, introduction to:                 Rule Introduction.   (line   6)
     3958* rule, multiple for one target:         Multiple Rules.      (line   6)
     3959* rule, no commands or prerequisites:    Force Targets.       (line   6)
     3960* rule, pattern:                         Pattern Intro.       (line   6)
     3961* rule, static pattern:                  Static Pattern.      (line   6)
    31263962* rule, static pattern versus implicit:  Static versus Implicit.
    3127 * rule, with multiple targets:           Multiple Targets.
    3128 * s. (SCCS file prefix):                 Catalogue of Rules.
    3129 * SCCS, rule to extract from:            Catalogue of Rules.
     3963                                                              (line   6)
     3964* rule, with multiple targets:           Multiple Targets.    (line   6)
     3965* rules, and $:                          Rule Syntax.         (line  32)
     3966* s. (SCCS file prefix):                 Catalogue of Rules.  (line 173)
     3967* SCCS, rule to extract from:            Catalogue of Rules.  (line 173)
    31303968* search algorithm, implicit rule:       Implicit Rule Search.
    3131 * search path for prerequisites (VPATH): Directory Search.
     3969                                                              (line   6)
     3970* search path for prerequisites (VPATH): Directory Search.    (line   6)
    31323971* search path for prerequisites (VPATH), and implicit rules: Implicit/Search.
     3972                                                              (line   6)
    31333973* search path for prerequisites (VPATH), and link libraries: Libraries/Search.
    3134 * searching for strings:                 Text Functions.
    3135 * secondary files:                       Chained Rules.
    3136 * secondary targets:                     Special Targets.
     3974                                                              (line   6)
     3975* searching for strings:                 Text Functions.      (line 103)
     3976* secondary expansion:                   Secondary Expansion. (line   6)
     3977* secondary expansion and explicit rules: Secondary Expansion.
     3978                                                              (line 106)
     3979* secondary expansion and implicit rules: Secondary Expansion.
     3980                                                              (line 146)
     3981* secondary expansion and static pattern rules: Secondary Expansion.
     3982                                                              (line 138)
     3983* secondary files:                       Chained Rules.       (line  46)
     3984* secondary targets:                     Special Targets.     (line  49)
    31373985* sed (shell command):                   Automatic Prerequisites.
    3138 * selecting a word:                      Text Functions.
    3139 * selecting word lists:                  Text Functions.
    3140 * sequences of commands:                 Sequences.
    3141 * setting options from environment:      Options/Recursion.
    3142 * setting options in makefiles:          Options/Recursion.
    3143 * setting variables:                     Setting.
    3144 * several rules for one target:          Multiple Rules.
    3145 * several targets in a rule:             Multiple Targets.
    3146 * shar (standard target):                Goals.
    3147 * shell command:                         Simple Makefile.
    3148 * shell command, and directory search:   Commands/Search.
    3149 * shell command, execution:              Execution.
    3150 * shell command, function for:           Shell Function.
    3151 * shell file name pattern (in include):  Include.
    3152 * shell wildcards (in include):          Include.
    3153 * SHELL, MS-DOS specifics:               Execution.
    3154 * signal:                                Interrupts.
    3155 * silent operation:                      Echoing.
    3156 * simple makefile:                       Simple Makefile.
    3157 * simple variable expansion:             Using Variables.
    3158 * simplifying with variables:            Variables Simplify.
    3159 * simply expanded variables:             Flavors.
    3160 * sorting words:                         Text Functions.
    3161 * spaces, in variable values:            Flavors.
    3162 * spaces, stripping:                     Text Functions.
    3163 * special targets:                       Special Targets.
    3164 * special variables:                     Special Variables.
    3165 * specifying makefile name:              Makefile Names.
    3166 * standard input:                        Parallel.
    3167 * standards conformance:                 Overview.
     3986                                                              (line  73)
     3987* selecting a word:                      Text Functions.      (line 159)
     3988* selecting word lists:                  Text Functions.      (line 168)
     3989* sequences of commands:                 Sequences.           (line   6)
     3990* setting options from environment:      Options/Recursion.   (line  81)
     3991* setting options in makefiles:          Options/Recursion.   (line  81)
     3992* setting variables:                     Setting.             (line   6)
     3993* several rules for one target:          Multiple Rules.      (line   6)
     3994* several targets in a rule:             Multiple Targets.    (line   6)
     3995* shar (standard target):                Goals.               (line 103)
     3996* shell command:                         Simple Makefile.     (line  72)
     3997* shell command, and directory search:   Commands/Search.     (line   6)
     3998* shell command, execution:              Execution.           (line   6)
     3999* shell command, function for:           Shell Function.      (line   6)
     4000* shell file name pattern (in include):  Include.             (line  13)
     4001* shell variables, setting in commands:  Execution.           (line  10)
     4002* shell wildcards (in include):          Include.             (line  13)
     4003* shell, choosing the:                   Choosing the Shell.  (line   6)
     4004* SHELL, exported value:                 Variables/Recursion. (line  23)
     4005* SHELL, import from environment:        Environment.         (line  37)
     4006* shell, in DOS and Windows:             Choosing the Shell.  (line  36)
     4007* SHELL, MS-DOS specifics:               Choosing the Shell.  (line  42)
     4008* SHELL, value of:                       Choosing the Shell.  (line   6)
     4009* signal:                                Interrupts.          (line   6)
     4010* silent operation:                      Echoing.             (line   6)
     4011* simple makefile:                       Simple Makefile.     (line   6)
     4012* simple variable expansion:             Using Variables.     (line   6)
     4013* simplifying with variables:            Variables Simplify.  (line   6)
     4014* simply expanded variables:             Flavors.             (line  56)
     4015* sorting words:                         Text Functions.      (line 146)
     4016* spaces, in variable values:            Flavors.             (line 103)
     4017* spaces, stripping:                     Text Functions.      (line  80)
     4018* special targets:                       Special Targets.     (line   6)
     4019* special variables:                     Special Variables.   (line   6)
     4020* specifying makefile name:              Makefile Names.      (line  30)
     4021* splitting commands:                    Splitting Lines.     (line   6)
     4022* standard input:                        Parallel.            (line  30)
     4023* standards conformance:                 Overview.            (line  13)
    31684024* standards for makefiles:               Makefile Conventions.
    3169 * static pattern rule:                   Static Pattern.
    3170 * static pattern rule, syntax of:        Static Usage.
     4025                                                              (line   6)
     4026* static pattern rule:                   Static Pattern.      (line   6)
     4027* static pattern rule, syntax of:        Static Usage.        (line   6)
    31714028* static pattern rule, versus implicit:  Static versus Implicit.
    3172 * stem <1>:                              Pattern Match.
    3173 * stem:                                  Static Usage.
    3174 * stem, variable for:                    Automatic Variables.
     4029                                                              (line   6)
     4030* static pattern rules, secondary expansion of: Secondary Expansion.
     4031                                                              (line 138)
     4032* stem <1>:                              Pattern Match.       (line   6)
     4033* stem:                                  Static Usage.        (line  17)
     4034* stem, variable for:                    Automatic Variables. (line  77)
    31754035* stopping make:                         Make Control Functions.
    3176 * strings, searching for:                Text Functions.
    3177 * stripping whitespace:                  Text Functions.
    3178 * sub-make:                              Variables/Recursion.
    3179 * subdirectories, recursion for:         Recursion.
    3180 * substitution variable reference:       Substitution Refs.
    3181 * suffix rule:                           Suffix Rules.
     4036                                                              (line  11)
     4037* strings, searching for:                Text Functions.      (line 103)
     4038* stripping whitespace:                  Text Functions.      (line  80)
     4039* sub-make:                              Variables/Recursion. (line   6)
     4040* subdirectories, recursion for:         Recursion.           (line   6)
     4041* substitution variable reference:       Substitution Refs.   (line   6)
     4042* suffix rule:                           Suffix Rules.        (line   6)
    31824043* suffix rule, for archive:              Archive Suffix Rules.
    3183 * suffix, adding:                        File Name Functions.
    3184 * suffix, function to find:              File Name Functions.
    3185 * suffix, substituting in variables:     Substitution Refs.
    3186 * switches:                              Options Summary.
    3187 * symbol directories, updating archive:  Archive Symbols.
    3188 * syntax of rules:                       Rule Syntax.
    3189 * tab character (in commands):           Rule Syntax.
    3190 * tabs in rules:                         Rule Introduction.
    3191 * TAGS (standard target):                Goals.
    3192 * tangle <1>:                            Implicit Variables.
    3193 * tangle:                                Catalogue of Rules.
    3194 * tar (standard target):                 Goals.
    3195 * target:                                Rules.
    3196 * target pattern, implicit:              Pattern Intro.
    3197 * target pattern, static (not implicit): Static Usage.
    3198 * target, deleting on error:             Errors.
    3199 * target, deleting on interrupt:         Interrupts.
    3200 * target, expansion:                     Reading Makefiles.
    3201 * target, multiple in pattern rule:      Pattern Intro.
    3202 * target, multiple rules for one:        Multiple Rules.
     4044                                                              (line   6)
     4045* suffix, adding:                        File Name Functions. (line  68)
     4046* suffix, function to find:              File Name Functions. (line  43)
     4047* suffix, substituting in variables:     Substitution Refs.   (line   6)
     4048* switches:                              Options Summary.     (line   6)
     4049* symbol directories, updating archive:  Archive Symbols.     (line   6)
     4050* syntax of commands:                    Command Syntax.      (line   6)
     4051* syntax of rules:                       Rule Syntax.         (line   6)
     4052* tab character (in commands):           Rule Syntax.         (line  26)
     4053* tabs in rules:                         Rule Introduction.   (line  21)
     4054* TAGS (standard target):                Goals.               (line 111)
     4055* tangle <1>:                            Implicit Variables.  (line 104)
     4056* tangle:                                Catalogue of Rules.  (line 151)
     4057* tar (standard target):                 Goals.               (line 100)
     4058* target:                                Rules.               (line   6)
     4059* target pattern, implicit:              Pattern Intro.       (line   9)
     4060* target pattern, static (not implicit): Static Usage.        (line  17)
     4061* target, deleting on error:             Errors.              (line  64)
     4062* target, deleting on interrupt:         Interrupts.          (line   6)
     4063* target, expansion:                     Reading Makefiles.   (line  62)
     4064* target, multiple in pattern rule:      Pattern Intro.       (line  49)
     4065* target, multiple rules for one:        Multiple Rules.      (line   6)
    32034066* target, touching:                      Instead of Execution.
    3204 * target-specific variables:             Target-specific.
    3205 * targets:                               Rule Syntax.
    3206 * targets without a file:                Phony Targets.
    3207 * targets, built-in special:             Special Targets.
    3208 * targets, empty:                        Empty Targets.
    3209 * targets, force:                        Force Targets.
    3210 * targets, introduction to:              Rule Introduction.
    3211 * targets, multiple:                     Multiple Targets.
    3212 * targets, phony:                        Phony Targets.
     4067                                                              (line  19)
     4068* target-specific variables:             Target-specific.     (line   6)
     4069* targets:                               Rule Syntax.         (line  18)
     4070* targets without a file:                Phony Targets.       (line   6)
     4071* targets, built-in special:             Special Targets.     (line   6)
     4072* targets, empty:                        Empty Targets.       (line   6)
     4073* targets, force:                        Force Targets.       (line   6)
     4074* targets, introduction to:              Rule Introduction.   (line   8)
     4075* targets, multiple:                     Multiple Targets.    (line   6)
     4076* targets, phony:                        Phony Targets.       (line   6)
    32134077* terminal rule:                         Match-Anything Rules.
    3214 * test (standard target):                Goals.
    3215 * testing compilation:                   Testing.
    3216 * tex <1>:                               Implicit Variables.
    3217 * tex:                                   Catalogue of Rules.
    3218 * TeX, rule to run:                      Catalogue of Rules.
    3219 * texi2dvi <1>:                          Implicit Variables.
    3220 * texi2dvi:                              Catalogue of Rules.
    3221 * Texinfo, rule to format:               Catalogue of Rules.
    3222 * tilde (~):                             Wildcards.
    3223 * touch (shell command) <1>:             Empty Targets.
    3224 * touch (shell command):                 Wildcard Examples.
     4078                                                              (line   6)
     4079* test (standard target):                Goals.               (line 115)
     4080* testing compilation:                   Testing.             (line   6)
     4081* tex <1>:                               Implicit Variables.  (line  91)
     4082* tex:                                   Catalogue of Rules.  (line 151)
     4083* TeX, rule to run:                      Catalogue of Rules.  (line 151)
     4084* texi2dvi <1>:                          Implicit Variables.  (line  95)
     4085* texi2dvi:                              Catalogue of Rules.  (line 158)
     4086* Texinfo, rule to format:               Catalogue of Rules.  (line 158)
     4087* tilde (~):                             Wildcards.           (line  11)
     4088* touch (shell command) <1>:             Empty Targets.       (line  25)
     4089* touch (shell command):                 Wildcard Examples.   (line  21)
    32254090* touching files:                        Instead of Execution.
    3226 * traditional directory search (GPATH):  Search Algorithm.
    3227 * types of prerequisites:                Prerequisite Types.
    3228 * undefined variables, warning message:  Options Summary.
    3229 * updating archive symbol directories:   Archive Symbols.
    3230 * updating makefiles:                    Remaking Makefiles.
    3231 * user defined functions:                Call Function.
    3232 * value:                                 Using Variables.
    3233 * value, how a variable gets it:         Values.
    3234 * variable:                              Using Variables.
    3235 * variable definition:                   Makefile Contents.
    3236 * variables:                             Variables Simplify.
    3237 * variables, $ in name:                  Computed Names.
    3238 * variables, and implicit rule:          Automatic Variables.
    3239 * variables, appending to:               Appending.
    3240 * variables, automatic:                  Automatic Variables.
    3241 * variables, command line:               Overriding.
    3242 * variables, command line, and recursion: Options/Recursion.
    3243 * variables, computed names:             Computed Names.
    3244 * variables, conditional assignment:     Flavors.
    3245 * variables, defining verbatim:          Defining.
    3246 * variables, environment <1>:            Environment.
    3247 * variables, environment:                Variables/Recursion.
    3248 * variables, exporting:                  Variables/Recursion.
    3249 * variables, flavors:                    Flavors.
    3250 * variables, how they get their values:  Values.
    3251 * variables, how to reference:           Reference.
    3252 * variables, loops in expansion:         Flavors.
    3253 * variables, modified reference:         Substitution Refs.
    3254 * variables, nested references:          Computed Names.
    3255 * variables, origin of:                  Origin Function.
    3256 * variables, overriding:                 Override Directive.
    3257 * variables, overriding with arguments:  Overriding.
    3258 * variables, pattern-specific:           Pattern-specific.
    3259 * variables, recursively expanded:       Flavors.
    3260 * variables, setting:                    Setting.
    3261 * variables, simply expanded:            Flavors.
    3262 * variables, spaces in values:           Flavors.
    3263 * variables, substituting suffix in:     Substitution Refs.
    3264 * variables, substitution reference:     Substitution Refs.
    3265 * variables, target-specific:            Target-specific.
    3266 * variables, unexpanded value:           Value Function.
    3267 * variables, warning for undefined:      Options Summary.
    3268 * varying prerequisites:                 Static Pattern.
    3269 * verbatim variable definition:          Defining.
    3270 * vpath:                                 Directory Search.
    3271 * VPATH, and implicit rules:             Implicit/Search.
    3272 * VPATH, and link libraries:             Libraries/Search.
     4091                                                              (line  19)
     4092* traditional directory search (GPATH):  Search Algorithm.    (line  42)
     4093* types of prerequisites:                Prerequisite Types.  (line   6)
     4094* undefined variables, warning message:  Options Summary.     (line 251)
     4095* updating archive symbol directories:   Archive Symbols.     (line   6)
     4096* updating makefiles:                    Remaking Makefiles.  (line   6)
     4097* user defined functions:                Call Function.       (line   6)
     4098* value:                                 Using Variables.     (line   6)
     4099* value, how a variable gets it:         Values.              (line   6)
     4100* variable:                              Using Variables.     (line   6)
     4101* variable definition:                   Makefile Contents.   (line  22)
     4102* variable references in commands:       Variables in Commands.
     4103                                                              (line   6)
     4104* variables:                             Variables Simplify.  (line   6)
     4105* variables, $ in name:                  Computed Names.      (line   6)
     4106* variables, and implicit rule:          Automatic Variables. (line   6)
     4107* variables, appending to:               Appending.           (line   6)
     4108* variables, automatic:                  Automatic Variables. (line   6)
     4109* variables, command line:               Overriding.          (line   6)
     4110* variables, command line, and recursion: Options/Recursion.  (line  17)
     4111* variables, computed names:             Computed Names.      (line   6)
     4112* variables, conditional assignment:     Flavors.             (line 129)
     4113* variables, defining verbatim:          Defining.            (line   6)
     4114* variables, environment <1>:            Environment.         (line   6)
     4115* variables, environment:                Variables/Recursion. (line   6)
     4116* variables, exporting:                  Variables/Recursion. (line   6)
     4117* variables, flavor of:                  Flavor Function.     (line   6)
     4118* variables, flavors:                    Flavors.             (line   6)
     4119* variables, how they get their values:  Values.              (line   6)
     4120* variables, how to reference:           Reference.           (line   6)
     4121* variables, loops in expansion:         Flavors.             (line  44)
     4122* variables, modified reference:         Substitution Refs.   (line   6)
     4123* variables, nested references:          Computed Names.      (line   6)
     4124* variables, origin of:                  Origin Function.     (line   6)
     4125* variables, overriding:                 Override Directive.  (line   6)
     4126* variables, overriding with arguments:  Overriding.          (line   6)
     4127* variables, pattern-specific:           Pattern-specific.    (line   6)
     4128* variables, recursively expanded:       Flavors.             (line   6)
     4129* variables, setting:                    Setting.             (line   6)
     4130* variables, simply expanded:            Flavors.             (line  56)
     4131* variables, spaces in values:           Flavors.             (line 103)
     4132* variables, substituting suffix in:     Substitution Refs.   (line   6)
     4133* variables, substitution reference:     Substitution Refs.   (line   6)
     4134* variables, target-specific:            Target-specific.     (line   6)
     4135* variables, unexpanded value:           Value Function.      (line   6)
     4136* variables, warning for undefined:      Options Summary.     (line 251)
     4137* varying prerequisites:                 Static Pattern.      (line   6)
     4138* verbatim variable definition:          Defining.            (line   6)
     4139* vpath:                                 Directory Search.    (line   6)
     4140* VPATH, and implicit rules:             Implicit/Search.     (line   6)
     4141* VPATH, and link libraries:             Libraries/Search.    (line   6)
    32734142* warnings, printing:                    Make Control Functions.
    3274 * weave <1>:                             Implicit Variables.
    3275 * weave:                                 Catalogue of Rules.
    3276 * Web, rule to run:                      Catalogue of Rules.
     4143                                                              (line  35)
     4144* weave <1>:                             Implicit Variables.  (line  98)
     4145* weave:                                 Catalogue of Rules.  (line 151)
     4146* Web, rule to run:                      Catalogue of Rules.  (line 151)
    32774147* what if:                               Instead of Execution.
    3278 * whitespace, in variable values:        Flavors.
    3279 * whitespace, stripping:                 Text Functions.
    3280 * wildcard:                              Wildcards.
    3281 * wildcard pitfalls:                     Wildcard Pitfall.
    3282 * wildcard, function:                    File Name Functions.
    3283 * wildcard, in archive member:           Archive Members.
    3284 * wildcard, in include:                  Include.
     4148                                                              (line  33)
     4149* whitespace, in variable values:        Flavors.             (line 103)
     4150* whitespace, stripping:                 Text Functions.      (line  80)
     4151* wildcard:                              Wildcards.           (line   6)
     4152* wildcard pitfalls:                     Wildcard Pitfall.    (line   6)
     4153* wildcard, function:                    File Name Functions. (line 107)
     4154* wildcard, in archive member:           Archive Members.     (line  36)
     4155* wildcard, in include:                  Include.             (line  13)
    32854156* wildcards and MS-DOS/MS-Windows backslashes: Wildcard Pitfall.
    3286 * word, selecting a:                     Text Functions.
    3287 * words, extracting first:               Text Functions.
    3288 * words, filtering:                      Text Functions.
    3289 * words, filtering out:                  Text Functions.
    3290 * words, finding number:                 Text Functions.
    3291 * words, iterating over:                 Foreach Function.
    3292 * words, joining lists:                  File Name Functions.
    3293 * words, removing duplicates:            Text Functions.
    3294 * words, selecting lists of:             Text Functions.
    3295 * writing rule commands:                 Commands.
    3296 * writing rules:                         Rules.
    3297 * yacc <1>:                              Implicit Variables.
    3298 * yacc <2>:                              Catalogue of Rules.
    3299 * yacc:                                  Sequences.
    3300 * Yacc, rule to run:                     Catalogue of Rules.
    3301 * ~ (tilde):                             Wildcards.
     4157                                                              (line  31)
     4158* Windows, choosing a shell in:          Choosing the Shell.  (line  36)
     4159* word, selecting a:                     Text Functions.      (line 159)
     4160* words, extracting first:               Text Functions.      (line 184)
     4161* words, extracting last:                Text Functions.      (line 197)
     4162* words, filtering:                      Text Functions.      (line 114)
     4163* words, filtering out:                  Text Functions.      (line 132)
     4164* words, finding number:                 Text Functions.      (line 180)
     4165* words, iterating over:                 Foreach Function.    (line   6)
     4166* words, joining lists:                  File Name Functions. (line  90)
     4167* words, removing duplicates:            Text Functions.      (line 155)
     4168* words, selecting lists of:             Text Functions.      (line 168)
     4169* writing rule commands:                 Commands.            (line   6)
     4170* writing rules:                         Rules.               (line   6)
     4171* yacc <1>:                              Implicit Variables.  (line  75)
     4172* yacc <2>:                              Catalogue of Rules.  (line 120)
     4173* yacc:                                  Sequences.           (line  18)
     4174* Yacc, rule to run:                     Catalogue of Rules.  (line 120)
     4175* ~ (tilde):                             Wildcards.           (line  11)
    33024176
    33034177
     
    33074181*******************************************
    33084182
     4183[index]
    33094184* Menu:
    33104185
    3311 * $$(@D):                                Automatic Variables.
    3312 * $$(@F):                                Automatic Variables.
    3313 * $$@:                                   Automatic Variables.
    3314 * $%:                                    Automatic Variables.
    3315 * $(%D):                                 Automatic Variables.
    3316 * $(%F):                                 Automatic Variables.
    3317 * $(*D):                                 Automatic Variables.
    3318 * $(*F):                                 Automatic Variables.
    3319 * $(+D):                                 Automatic Variables.
    3320 * $(+F):                                 Automatic Variables.
    3321 * $(.VARIABLES):                         Special Variables.
    3322 * $(<D):                                 Automatic Variables.
    3323 * $(<F):                                 Automatic Variables.
    3324 * $(?D):                                 Automatic Variables.
    3325 * $(?F):                                 Automatic Variables.
    3326 * $(@D):                                 Automatic Variables.
    3327 * $(@F):                                 Automatic Variables.
    3328 * $(^D):                                 Automatic Variables.
    3329 * $(^F):                                 Automatic Variables.
    3330 * $*:                                    Automatic Variables.
    3331 * $*, and static pattern:                Static Usage.
    3332 * $+:                                    Automatic Variables.
    3333 * $<:                                    Automatic Variables.
    3334 * $?:                                    Automatic Variables.
    3335 * $@:                                    Automatic Variables.
    3336 * $^:                                    Automatic Variables.
    3337 * % (automatic variable):                Automatic Variables.
    3338 * %D (automatic variable):               Automatic Variables.
    3339 * %F (automatic variable):               Automatic Variables.
    3340 * * (automatic variable):                Automatic Variables.
    3341 * * (automatic variable), unsupported bizarre usage: Missing.
    3342 * *D (automatic variable):               Automatic Variables.
    3343 * *F (automatic variable):               Automatic Variables.
    3344 * + (automatic variable):                Automatic Variables.
    3345 * +D (automatic variable):               Automatic Variables.
    3346 * +F (automatic variable):               Automatic Variables.
    3347 * .DEFAULT <1>:                          Last Resort.
    3348 * .DEFAULT:                              Special Targets.
    3349 * .DEFAULT, and empty commands:          Empty Commands.
    3350 * .DELETE_ON_ERROR <1>:                  Errors.
    3351 * .DELETE_ON_ERROR:                      Special Targets.
    3352 * .EXPORT_ALL_VARIABLES <1>:             Variables/Recursion.
    3353 * .EXPORT_ALL_VARIABLES:                 Special Targets.
    3354 * .IGNORE <1>:                           Errors.
    3355 * .IGNORE:                               Special Targets.
    3356 * .INTERMEDIATE:                         Special Targets.
    3357 * .LIBPATTERNS:                          Libraries/Search.
    3358 * .LOW_RESOLUTION_TIME:                  Special Targets.
    3359 * .NOTPARALLEL:                          Special Targets.
    3360 * .PHONY <1>:                            Special Targets.
    3361 * .PHONY:                                Phony Targets.
    3362 * .POSIX:                                Options/Recursion.
    3363 * .PRECIOUS <1>:                         Interrupts.
    3364 * .PRECIOUS:                             Special Targets.
    3365 * .SECONDARY:                            Special Targets.
    3366 * .SILENT <1>:                           Echoing.
    3367 * .SILENT:                               Special Targets.
    3368 * .SUFFIXES <1>:                         Suffix Rules.
    3369 * .SUFFIXES:                             Special Targets.
    3370 * .VARIABLES (list of variables):        Special Variables.
    3371 * /usr/gnu/include:                      Include.
    3372 * /usr/include:                          Include.
    3373 * /usr/local/include:                    Include.
    3374 * < (automatic variable):                Automatic Variables.
    3375 * <D (automatic variable):               Automatic Variables.
    3376 * <F (automatic variable):               Automatic Variables.
    3377 * ? (automatic variable):                Automatic Variables.
    3378 * ?D (automatic variable):               Automatic Variables.
    3379 * ?F (automatic variable):               Automatic Variables.
    3380 * @ (automatic variable):                Automatic Variables.
    3381 * @D (automatic variable):               Automatic Variables.
    3382 * @F (automatic variable):               Automatic Variables.
    3383 * ^ (automatic variable):                Automatic Variables.
    3384 * ^D (automatic variable):               Automatic Variables.
    3385 * ^F (automatic variable):               Automatic Variables.
    3386 * addprefix:                             File Name Functions.
    3387 * addsuffix:                             File Name Functions.
    3388 * AR:                                    Implicit Variables.
    3389 * ARFLAGS:                               Implicit Variables.
    3390 * AS:                                    Implicit Variables.
    3391 * ASFLAGS:                               Implicit Variables.
    3392 * basename:                              File Name Functions.
    3393 * bindir:                                Directory Variables.
    3394 * call:                                  Call Function.
    3395 * CC:                                    Implicit Variables.
    3396 * CFLAGS:                                Implicit Variables.
    3397 * CO:                                    Implicit Variables.
    3398 * COFLAGS:                               Implicit Variables.
    3399 * COMSPEC:                               Execution.
    3400 * CPP:                                   Implicit Variables.
    3401 * CPPFLAGS:                              Implicit Variables.
    3402 * CTANGLE:                               Implicit Variables.
    3403 * CURDIR:                                Recursion.
    3404 * CWEAVE:                                Implicit Variables.
    3405 * CXX:                                   Implicit Variables.
    3406 * CXXFLAGS:                              Implicit Variables.
    3407 * define:                                Defining.
    3408 * dir:                                   File Name Functions.
    3409 * else:                                  Conditional Syntax.
    3410 * endef:                                 Defining.
    3411 * endif:                                 Conditional Syntax.
     4186* $%:                                    Automatic Variables. (line  37)
     4187* $(%D):                                 Automatic Variables. (line 129)
     4188* $(%F):                                 Automatic Variables. (line 130)
     4189* $(*D):                                 Automatic Variables. (line 124)
     4190* $(*F):                                 Automatic Variables. (line 125)
     4191* $(+D):                                 Automatic Variables. (line 147)
     4192* $(+F):                                 Automatic Variables. (line 148)
     4193* $(<D):                                 Automatic Variables. (line 137)
     4194* $(<F):                                 Automatic Variables. (line 138)
     4195* $(?D):                                 Automatic Variables. (line 153)
     4196* $(?F):                                 Automatic Variables. (line 154)
     4197* $(@D):                                 Automatic Variables. (line 113)
     4198* $(@F):                                 Automatic Variables. (line 119)
     4199* $(^D):                                 Automatic Variables. (line 142)
     4200* $(^F):                                 Automatic Variables. (line 143)
     4201* $*:                                    Automatic Variables. (line  73)
     4202* $*, and static pattern:                Static Usage.        (line  81)
     4203* $+:                                    Automatic Variables. (line  63)
     4204* $<:                                    Automatic Variables. (line  43)
     4205* $?:                                    Automatic Variables. (line  48)
     4206* $@:                                    Automatic Variables. (line  30)
     4207* $^:                                    Automatic Variables. (line  53)
     4208* $|:                                    Automatic Variables. (line  69)
     4209* % (automatic variable):                Automatic Variables. (line  37)
     4210* %D (automatic variable):               Automatic Variables. (line 129)
     4211* %F (automatic variable):               Automatic Variables. (line 130)
     4212* * (automatic variable):                Automatic Variables. (line  73)
     4213* * (automatic variable), unsupported bizarre usage: Missing. (line  44)
     4214* *D (automatic variable):               Automatic Variables. (line 124)
     4215* *F (automatic variable):               Automatic Variables. (line 125)
     4216* + (automatic variable):                Automatic Variables. (line  63)
     4217* +D (automatic variable):               Automatic Variables. (line 147)
     4218* +F (automatic variable):               Automatic Variables. (line 148)
     4219* .DEFAULT <1>:                          Last Resort.         (line  23)
     4220* .DEFAULT:                              Special Targets.     (line  20)
     4221* .DEFAULT, and empty commands:          Empty Commands.      (line  16)
     4222* .DEFAULT_GOAL (define default goal):   Special Variables.   (line  10)
     4223* .DELETE_ON_ERROR <1>:                  Errors.              (line  64)
     4224* .DELETE_ON_ERROR:                      Special Targets.     (line  67)
     4225* .EXPORT_ALL_VARIABLES <1>:             Variables/Recursion. (line  99)
     4226* .EXPORT_ALL_VARIABLES:                 Special Targets.     (line 129)
     4227* .FEATURES (list of supported features): Special Variables.  (line  65)
     4228* .IGNORE <1>:                           Errors.              (line  30)
     4229* .IGNORE:                               Special Targets.     (line  74)
     4230* .INCLUDE_DIRS (list of include directories): Special Variables.
     4231                                                              (line  98)
     4232* .INTERMEDIATE:                         Special Targets.     (line  43)
     4233* .LIBPATTERNS:                          Libraries/Search.    (line   6)
     4234* .LOW_RESOLUTION_TIME:                  Special Targets.     (line  86)
     4235* .NOTPARALLEL:                          Special Targets.     (line 134)
     4236* .PHONY <1>:                            Special Targets.     (line   8)
     4237* .PHONY:                                Phony Targets.       (line  22)
     4238* .POSIX:                                Options/Recursion.   (line  60)
     4239* .PRECIOUS <1>:                         Interrupts.          (line  22)
     4240* .PRECIOUS:                             Special Targets.     (line  28)
     4241* .SECONDARY:                            Special Targets.     (line  48)
     4242* .SECONDEXPANSION <1>:                  Special Targets.     (line  57)
     4243* .SECONDEXPANSION:                      Secondary Expansion. (line   6)
     4244* .SILENT <1>:                           Echoing.             (line  24)
     4245* .SILENT:                               Special Targets.     (line 116)
     4246* .SUFFIXES <1>:                         Suffix Rules.        (line  61)
     4247* .SUFFIXES:                             Special Targets.     (line  15)
     4248* .VARIABLES (list of variables):        Special Variables.   (line  56)
     4249* /usr/gnu/include:                      Include.             (line  52)
     4250* /usr/include:                          Include.             (line  52)
     4251* /usr/local/include:                    Include.             (line  52)
     4252* < (automatic variable):                Automatic Variables. (line  43)
     4253* <D (automatic variable):               Automatic Variables. (line 137)
     4254* <F (automatic variable):               Automatic Variables. (line 138)
     4255* ? (automatic variable):                Automatic Variables. (line  48)
     4256* ?D (automatic variable):               Automatic Variables. (line 153)
     4257* ?F (automatic variable):               Automatic Variables. (line 154)
     4258* @ (automatic variable):                Automatic Variables. (line  30)
     4259* @D (automatic variable):               Automatic Variables. (line 113)
     4260* @F (automatic variable):               Automatic Variables. (line 119)
     4261* ^ (automatic variable):                Automatic Variables. (line  53)
     4262* ^D (automatic variable):               Automatic Variables. (line 142)
     4263* ^F (automatic variable):               Automatic Variables. (line 143)
     4264* abspath:                               File Name Functions. (line 121)
     4265* addprefix:                             File Name Functions. (line  79)
     4266* addsuffix:                             File Name Functions. (line  68)
     4267* and:                                   Conditional Functions.
     4268                                                              (line  45)
     4269* AR:                                    Implicit Variables.  (line  41)
     4270* ARFLAGS:                               Implicit Variables.  (line 117)
     4271* AS:                                    Implicit Variables.  (line  44)
     4272* ASFLAGS:                               Implicit Variables.  (line 120)
     4273* basename:                              File Name Functions. (line  57)
     4274* bindir:                                Directory Variables. (line  53)
     4275* call:                                  Call Function.       (line   6)
     4276* CC:                                    Implicit Variables.  (line  47)
     4277* CFLAGS:                                Implicit Variables.  (line 124)
     4278* CO:                                    Implicit Variables.  (line  50)
     4279* COFLAGS:                               Implicit Variables.  (line 130)
     4280* COMSPEC:                               Choosing the Shell.  (line  39)
     4281* CPP:                                   Implicit Variables.  (line  59)
     4282* CPPFLAGS:                              Implicit Variables.  (line 133)
     4283* CTANGLE:                               Implicit Variables.  (line 107)
     4284* CURDIR:                                Recursion.           (line  28)
     4285* CWEAVE:                                Implicit Variables.  (line 101)
     4286* CXX:                                   Implicit Variables.  (line  53)
     4287* CXXFLAGS:                              Implicit Variables.  (line 127)
     4288* define:                                Defining.            (line   6)
     4289* dir:                                   File Name Functions. (line  17)
     4290* else:                                  Conditional Syntax.  (line   6)
     4291* endef:                                 Defining.            (line   6)
     4292* endif:                                 Conditional Syntax.  (line   6)
    34124293* error:                                 Make Control Functions.
    3413 * eval:                                  Eval Function.
    3414 * exec_prefix:                           Directory Variables.
    3415 * export:                                Variables/Recursion.
    3416 * FC:                                    Implicit Variables.
    3417 * FFLAGS:                                Implicit Variables.
    3418 * filter:                                Text Functions.
    3419 * filter-out:                            Text Functions.
    3420 * findstring:                            Text Functions.
    3421 * firstword:                             Text Functions.
    3422 * foreach:                               Foreach Function.
    3423 * GET:                                   Implicit Variables.
    3424 * GFLAGS:                                Implicit Variables.
    3425 * GNUmakefile:                           Makefile Names.
    3426 * GPATH:                                 Search Algorithm.
    3427 * if:                                    If Function.
    3428 * ifdef:                                 Conditional Syntax.
    3429 * ifeq:                                  Conditional Syntax.
    3430 * ifndef:                                Conditional Syntax.
    3431 * ifneq:                                 Conditional Syntax.
    3432 * include:                               Include.
    3433 * join:                                  File Name Functions.
    3434 * LDFLAGS:                               Implicit Variables.
    3435 * LEX:                                   Implicit Variables.
    3436 * LFLAGS:                                Implicit Variables.
    3437 * libexecdir:                            Directory Variables.
    3438 * MAKE <1>:                              Flavors.
    3439 * MAKE:                                  MAKE Variable.
    3440 * MAKECMDGOALS:                          Goals.
    3441 * makefile:                              Makefile Names.
    3442 * Makefile:                              Makefile Names.
    3443 * MAKEFILES <1>:                         Variables/Recursion.
    3444 * MAKEFILES:                             MAKEFILES Variable.
    3445 * MAKEFLAGS:                             Options/Recursion.
    3446 * MAKEINFO:                              Implicit Variables.
    3447 * MAKELEVEL <1>:                         Flavors.
    3448 * MAKELEVEL:                             Variables/Recursion.
    3449 * MAKEOVERRIDES:                         Options/Recursion.
    3450 * MFLAGS:                                Options/Recursion.
    3451 * notdir:                                File Name Functions.
    3452 * origin:                                Origin Function.
    3453 * OUTPUT_OPTION:                         Catalogue of Rules.
    3454 * override:                              Override Directive.
    3455 * patsubst <1>:                          Text Functions.
    3456 * patsubst:                              Substitution Refs.
    3457 * PC:                                    Implicit Variables.
    3458 * PFLAGS:                                Implicit Variables.
    3459 * prefix:                                Directory Variables.
    3460 * RFLAGS:                                Implicit Variables.
    3461 * RM:                                    Implicit Variables.
    3462 * sbindir:                               Directory Variables.
    3463 * shell:                                 Shell Function.
    3464 * SHELL:                                 Execution.
    3465 * SHELL (command execution):             Execution.
    3466 * sort:                                  Text Functions.
    3467 * strip:                                 Text Functions.
    3468 * subst <1>:                             Text Functions.
    3469 * subst:                                 Multiple Targets.
    3470 * suffix:                                File Name Functions.
    3471 * SUFFIXES:                              Suffix Rules.
    3472 * TANGLE:                                Implicit Variables.
    3473 * TEX:                                   Implicit Variables.
    3474 * TEXI2DVI:                              Implicit Variables.
    3475 * unexport:                              Variables/Recursion.
    3476 * value:                                 Value Function.
    3477 * vpath:                                 Selective Search.
    3478 * VPATH:                                 General Search.
    3479 * vpath:                                 Directory Search.
    3480 * VPATH:                                 Directory Search.
     4294                                                              (line  11)
     4295* eval:                                  Eval Function.       (line   6)
     4296* exec_prefix:                           Directory Variables. (line  35)
     4297* export:                                Variables/Recursion. (line  40)
     4298* FC:                                    Implicit Variables.  (line  63)
     4299* FFLAGS:                                Implicit Variables.  (line 137)
     4300* filter:                                Text Functions.      (line 114)
     4301* filter-out:                            Text Functions.      (line 132)
     4302* findstring:                            Text Functions.      (line 103)
     4303* firstword:                             Text Functions.      (line 184)
     4304* flavor:                                Flavor Function.     (line   6)
     4305* foreach:                               Foreach Function.    (line   6)
     4306* GET:                                   Implicit Variables.  (line  67)
     4307* GFLAGS:                                Implicit Variables.  (line 140)
     4308* GNUmakefile:                           Makefile Names.      (line   7)
     4309* GPATH:                                 Search Algorithm.    (line  48)
     4310* if:                                    Conditional Functions.
     4311                                                              (line   6)
     4312* ifdef:                                 Conditional Syntax.  (line   6)
     4313* ifeq:                                  Conditional Syntax.  (line   6)
     4314* ifndef:                                Conditional Syntax.  (line   6)
     4315* ifneq:                                 Conditional Syntax.  (line   6)
     4316* include:                               Include.             (line   6)
     4317* info:                                  Make Control Functions.
     4318                                                              (line  43)
     4319* join:                                  File Name Functions. (line  90)
     4320* lastword:                              Text Functions.      (line 197)
     4321* LDFLAGS:                               Implicit Variables.  (line 143)
     4322* LEX:                                   Implicit Variables.  (line  70)
     4323* LFLAGS:                                Implicit Variables.  (line 147)
     4324* libexecdir:                            Directory Variables. (line  66)
     4325* LINT:                                  Implicit Variables.  (line  78)
     4326* LINTFLAGS:                             Implicit Variables.  (line 159)
     4327* M2C:                                   Implicit Variables.  (line  81)
     4328* MAKE <1>:                              Flavors.             (line  84)
     4329* MAKE:                                  MAKE Variable.       (line   6)
     4330* MAKE_RESTARTS (number of times make has restarted): Special Variables.
     4331                                                              (line  49)
     4332* MAKE_VERSION:                          Features.            (line 197)
     4333* MAKECMDGOALS:                          Goals.               (line  30)
     4334* makefile:                              Makefile Names.      (line   7)
     4335* Makefile:                              Makefile Names.      (line   7)
     4336* MAKEFILE_LIST:                         MAKEFILE_LIST Variable.
     4337                                                              (line   6)
     4338* MAKEFILES <1>:                         Variables/Recursion. (line 127)
     4339* MAKEFILES:                             MAKEFILES Variable.  (line   6)
     4340* MAKEFLAGS:                             Options/Recursion.   (line   6)
     4341* MAKEINFO:                              Implicit Variables.  (line  87)
     4342* MAKELEVEL <1>:                         Flavors.             (line  84)
     4343* MAKELEVEL:                             Variables/Recursion. (line 115)
     4344* MAKEOVERRIDES:                         Options/Recursion.   (line  49)
     4345* MAKESHELL (MS-DOS alternative to SHELL): Choosing the Shell.
     4346                                                              (line  25)
     4347* MFLAGS:                                Options/Recursion.   (line  65)
     4348* notdir:                                File Name Functions. (line  27)
     4349* or:                                    Conditional Functions.
     4350                                                              (line  37)
     4351* origin:                                Origin Function.     (line   6)
     4352* OUTPUT_OPTION:                         Catalogue of Rules.  (line 202)
     4353* override:                              Override Directive.  (line   6)
     4354* patsubst <1>:                          Text Functions.      (line  18)
     4355* patsubst:                              Substitution Refs.   (line  28)
     4356* PC:                                    Implicit Variables.  (line  84)
     4357* PFLAGS:                                Implicit Variables.  (line 153)
     4358* prefix:                                Directory Variables. (line  25)
     4359* realpath:                              File Name Functions. (line 114)
     4360* RFLAGS:                                Implicit Variables.  (line 156)
     4361* RM:                                    Implicit Variables.  (line 110)
     4362* sbindir:                               Directory Variables. (line  59)
     4363* shell:                                 Shell Function.      (line   6)
     4364* SHELL:                                 Choosing the Shell.  (line   6)
     4365* SHELL (command execution):             Execution.           (line   6)
     4366* sort:                                  Text Functions.      (line 146)
     4367* strip:                                 Text Functions.      (line  80)
     4368* subst <1>:                             Text Functions.      (line   9)
     4369* subst:                                 Multiple Targets.    (line  28)
     4370* suffix:                                File Name Functions. (line  43)
     4371* SUFFIXES:                              Suffix Rules.        (line  81)
     4372* TANGLE:                                Implicit Variables.  (line 104)
     4373* TEX:                                   Implicit Variables.  (line  91)
     4374* TEXI2DVI:                              Implicit Variables.  (line  94)
     4375* unexport:                              Variables/Recursion. (line  45)
     4376* value:                                 Value Function.      (line   6)
     4377* vpath:                                 Selective Search.    (line   6)
     4378* VPATH:                                 General Search.      (line   6)
     4379* vpath:                                 Directory Search.    (line   6)
     4380* VPATH:                                 Directory Search.    (line   6)
    34814381* warning:                               Make Control Functions.
    3482 * WEAVE:                                 Implicit Variables.
    3483 * wildcard <1>:                          File Name Functions.
    3484 * wildcard:                              Wildcard Function.
    3485 * word:                                  Text Functions.
    3486 * wordlist:                              Text Functions.
    3487 * words:                                 Text Functions.
    3488 * YACC:                                  Implicit Variables.
    3489 * YACCR:                                 Implicit Variables.
    3490 * YFLAGS:                                Implicit Variables.
    3491 
    3492 
     4382                                                              (line  35)
     4383* WEAVE:                                 Implicit Variables.  (line  98)
     4384* wildcard <1>:                          File Name Functions. (line 107)
     4385* wildcard:                              Wildcard Function.   (line   6)
     4386* word:                                  Text Functions.      (line 159)
     4387* wordlist:                              Text Functions.      (line 168)
     4388* words:                                 Text Functions.      (line 180)
     4389* YACC:                                  Implicit Variables.  (line  74)
     4390* YFLAGS:                                Implicit Variables.  (line 150)
     4391* | (automatic variable):                Automatic Variables. (line  69)
     4392
     4393
  • vendor/gnumake/current/doc/make.texi

    r280 r501  
    22@c %**start of header
    33@setfilename make.info
     4
     5@include version.texi
     6@set EDITION 0.70
     7@set RCSID $Id: make.texi,v 1.45 2006/04/01 06:36:40 psmith Exp $
     8
    49@settitle GNU @code{make}
    510@setchapternewpage odd
    6 @c %**end of header
    7 
    8 @c FSF publishers: format makebook.texi instead of using this file directly.
    9 
    10 @set RCSID $Id: make.texi,v 1.30 2005/05/13 12:45:31 psmith Exp $
    11 @set EDITION 0.70
    12 @set VERSION 3.81
    13 @set UPDATED 07 May 2005
    14 @set UPDATE-MONTH May 2005
    15 @c ISBN provided by Lisa M. Opus Goldstein <[email protected]>, 5 May 2004
    16 @set ISBN 1-882114-83-5
    17 
    18 @c finalout
    19 
    20 @c ISPELL CHECK: done, 10 June 1993 --roland
    21 @c ISPELL CHECK: done, 2000-06-25 --Martin Buchholz
    22 
    2311@c Combine the variable and function indices:
    2412@syncodeindex vr fn
    2513@c Combine the program and concept indices:
    2614@syncodeindex pg cp
     15@c FSF publishers: format makebook.texi instead of using this file directly.
     16@c ISBN provided by Lisa M. Opus Goldstein <[email protected]>, 5 May 2004
     17@set ISBN 1-882114-83-5
     18@c %**end of header
     19
     20@copying
     21This file documents the GNU @code{make} utility, which determines
     22automatically which pieces of a large program need to be recompiled,
     23and issues the commands to recompile them.
     24
     25This is Edition @value{EDITION}, last updated @value{UPDATED},
     26of @cite{The GNU Make Manual}, for GNU @code{make} version @value{VERSION}.
     27
     28Copyright @copyright{} 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995,
     291996, 1997, 1998, 1999, 2000, 2002, 2003, 2004, 2005, 2006
     30Free Software Foundation, Inc.
     31
     32@quotation
     33Permission is granted to copy, distribute and/or modify this document
     34under the terms of the GNU Free Documentation License, Version 1.2 or
     35any later version published by the Free Software Foundation; with no
     36Invariant Sections, with the Front-Cover Texts being ``A GNU Manual,''
     37and with the Back-Cover Texts as in (a) below.  A copy of the
     38license is included in the section entitled ``GNU Free Documentation
     39License.''
     40
     41(a) The FSF's Back-Cover Text is: ``You have freedom to copy and modify
     42this GNU Manual, like GNU software.  Copies published by the Free
     43Software Foundation raise funds for GNU development.''
     44@end quotation
     45@end copying
     46
     47@c finalout
     48
     49@c ISPELL CHECK: done, 10 June 1993 --roland
     50@c ISPELL CHECK: done, 2000-06-25 --Martin Buchholz
     51
    2752
    2853@dircategory GNU Packages
     
    3055* Make: (make).            Remake files automatically.
    3156@end direntry
    32 
    33 @ifnottex
    34 This file documents the GNU Make utility, which determines
    35 automatically which pieces of a large program need to be recompiled,
    36 and issues the commands to recompile them.
    37 
    38 This is Edition @value{EDITION}, last updated @value{UPDATED},
    39 of @cite{The GNU Make Manual}, for @code{make}, Version @value{VERSION}.
    40 
    41 Copyright 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
    42 1998, 1999, 2000, 2002, 2003, 2004, 2005
    43 Free Software Foundation, Inc.
    44 
    45 Permission is granted to copy, distribute and/or modify this document
    46 under the terms of the GNU Free Documentation License, Version 1.1 or
    47 any later version published by the Free Software Foundation; with no
    48 Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
    49 Texts.  A copy of the license is included in the section entitled
    50 ``GNU Free Documentation License''.
    51 @end ifnottex
    5257
    5358@iftex
     
    5863@subtitle A Program for Directing Recompilation
    5964@subtitle GNU @code{make} Version @value{VERSION}
    60 @subtitle @value{UPDATE-MONTH}
     65@subtitle @value{UPDATED-MONTH}
    6166@author Richard M. Stallman, Roland McGrath, Paul D. Smith
    6267@page
    6368@vskip 0pt plus 1filll
    64 Copyright @copyright{} 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995,
    65 1996, 1997, 1998, 1999, 2000, 2002, 2003, 2004 Free Software Foundation, Inc.
     69@insertcopying
    6670@sp 2
    6771Published by the Free Software Foundation @*
    68 59 Temple Place -- Suite 330, @*
    69 Boston, MA 02111-1307 USA @*
     7251 Franklin St. -- Fifth Floor @*
     73Boston, MA 02110-1301 USA @*
    7074ISBN @value{ISBN} @*
    71 
    72 Permission is granted to copy, distribute and/or modify this document
    73 under the terms of the GNU Free Documentation License, Version 1.1 or
    74 any later version published by the Free Software Foundation; with the
    75 Invariant Sections being ``GNU General Public License'', the Front-Cover
    76 Texts being ``A GNU Manual'', and with the Back-Cover Texts being as in
    77 (a) below.  A copy of the license is included in the section entitled
    78 ``GNU Free Documentation License''.
    79 
    80 (a) The FSF's Back-Cover Text is:
    81 
    82 @quotation
    83       You have freedom to copy and modify this GNU Manual, like GNU
    84       software.  Copies published by the Free Software Foundation raise
    85       funds for GNU development.
    86 @end quotation
    8775@sp 2
    8876Cover art by Etienne Suvasa.
    8977@end titlepage
    90 @page
     78
     79@summarycontents
     80@contents
    9181
    9282@ifnottex
    9383@node Top, Overview, (dir), (dir)
    94 @top Make
    95 
    96 The GNU @code{make} utility automatically determines which pieces of a
    97 large program need to be recompiled, and issues the commands to
    98 recompile them.@refill
    99 
    100 This edition of the @cite{GNU Make Manual},
    101 last updated @value{UPDATED},
    102 documents GNU @code{make} Version @value{VERSION}.@refill
    103 
    104 This manual describes @code{make} and contains the following chapters:@refill
     84@top GNU @code{make}
     85
     86@insertcopying
    10587@end ifnottex
    10688
     
    174156* Phony Targets::               Using a target that is not a real file's name.
    175157* Force Targets::               You can use a target without commands
    176                                   or prerequisites to mark other
    177                                   targets as phony.
     158                                  or prerequisites to mark other targets
     159                                  as phony.
    178160* Empty Targets::               When only the date matters and the
    179161                                  files are empty.
     
    215197Writing the Commands in Rules
    216198
     199* Command Syntax::              Command syntax features and pitfalls.
    217200* Echoing::                     How to control when commands are echoed.
    218201* Execution::                   How commands are executed.
     
    223206* Sequences::                   Defining canned sequences of commands.
    224207* Empty Commands::              Defining useful, do-nothing commands.
     208
     209Command Syntax
     210
     211* Splitting Lines::             Breaking long command lines for readability.
     212* Variables in Commands::       Using @code{make} variables in commands.
     213
     214Command Execution
     215
     216* Choosing the Shell::          How @code{make} chooses the shell used
     217                                  to run commands.
    225218
    226219Recursive Use of @code{make}
     
    268261* Text Functions::              General-purpose text manipulation functions.
    269262* File Name Functions::         Functions for manipulating file names.
     263* Conditional Functions::       Functions that implement conditions.
    270264* Foreach Function::            Repeat some text with controlled variation.
    271 * If Function::                 Conditionally expand a value.
    272265* Call Function::               Expand a user-defined function.
    273266* Value Function::              Return the un-expanded value of a variable.
    274267* Eval Function::               Evaluate the arguments as makefile syntax.
    275268* Origin Function::             Find where a variable got its value.
     269* Flavor Function::             Find out the flavor of a variable.
    276270* Shell Function::              Substitute the output of a shell command.
    277271* Make Control Functions::      Functions that control how make runs.
     
    301295* Chained Rules::               How to use a chain of implicit rules.
    302296* Pattern Rules::               How to define new implicit rules.
    303 * Last Resort::                 How to defining commands for rules
    304                                   which cannot find any.
     297* Last Resort::                 How to define commands for rules which
     298                                  cannot find any.
    305299* Suffix Rules::                The old-fashioned style of implicit rule.
    306300* Implicit Rule Search::        The precise algorithm for applying
     
    330324
    331325* Archive Symbols::             How to update archive symbol directories.
    332 
    333 Makefile Conventions
    334 
    335 * Makefile Basics::             General Conventions for Makefiles
    336 * Utilities in Makefiles::      Utilities in Makefiles
    337 * Command Variables::           Variables for Specifying Commands
    338 * Directory Variables::         Variables for Installation Directories
    339 * Standard Targets::            Standard Targets for Users
    340 * Install Command Categories::  Three categories of commands in the `install'
    341326
    342327@end detailmenu
     
    11001085
    11011086@noindent
    1102 @var{filenames} can contain shell file name patterns.
     1087@var{filenames} can contain shell file name patterns.  If
     1088@var{filenames} is empty, nothing is included and no error is printed.
    11031089@cindex shell file name pattern (in @code{include})
    11041090@cindex shell wildcards (in @code{include})
     
    12891275@code{.DEFAULT_GOAL} variable allows you to discover the current
    12901276default goal, restart the default goal selection algorithm by clearing
    1291 its value, or to explicitly set the default goal. The following
     1277its value, or to explicitly set the default goal.  The following
    12921278example illustrates these cases:
    12931279
     
    13301316Note that assigning more than one target name to @code{.DEFAULT_GOAL} is
    13311317illegal and will result in an error.
     1318
     1319@vindex MAKE_RESTARTS @r{(number of times @code{make} has restarted)}
     1320@item MAKE_RESTARTS
     1321This variable is set only if this instance of @code{make} has
     1322restarted (@pxref{Remaking Makefiles, , How Makefiles Are Remade}): it
     1323will contain the number of times this instance has restarted.  Note
     1324this is not the same as recursion (counted by the @code{MAKELEVEL}
     1325variable).  You should not set, modify, or export this variable.
    13321326
    13331327@vindex .VARIABLES @r{(list of variables)}
     
    13571351
    13581352@table @samp
     1353
     1354@item archives
     1355Supports @code{ar} (archive) files using special filename syntax.
     1356@xref{Archives, ,Using @code{make} to Update Archive Files}.
     1357
     1358@item check-symlink
     1359Supports the @code{-L} (@code{--check-symlink-times}) flag.
     1360@xref{Options Summary, ,Summary of Options}.
     1361
     1362@item else-if
     1363Supports ``else if'' non-nested conditionals.  @xref{Conditional
     1364Syntax, ,Syntax of Conditionals}.
     1365
     1366@item jobserver
     1367Supports ``job server'' enhanced parallel builds.  @xref{Parallel,
     1368,Parallel Execution}.
     1369
     1370@item second-expansion
     1371Supports secondary expansion of prerequisite lists.
     1372
     1373@item order-only
     1374Supports order-only prerequisites.  @xref{Prerequisite Types, ,Types
     1375of Prerequisites}.
     1376
    13591377@item target-specific
    13601378Supports target-specific and pattern-specific variable assignments.
    13611379@xref{Target-specific, ,Target-specific Variable Values}.
    13621380
    1363 @item order-only
    1364 Supports order-only prerequisites.  @xref{Prerequisite Types, ,Types
    1365 of Prerequisites}.
    1366 
    1367 @item second-expansion
    1368 Supports secondary expansion of prerequisite lists.
    1369 
    1370 @item jobserver
    1371 Supports ``job server'' enhanced parallel builds.  @xref{Parallel,
    1372 ,Parallel Execution}.
    1373 
    1374 @item check-symlink
    1375 Supports the @code{-L} (@code{--check-symlink-times}) flag.
    1376 @xref{Options Summary, ,Summary of Options}.
    1377 
    13781381@end table
     1382
     1383@vindex .INCLUDE_DIRS @r{(list of include directories)}
     1384@item .INCLUDE_DIRS
     1385Expands to a list of directories that @code{make} searches for
     1386included makefiles (@pxref{Include, , Including Other Makefiles}).
    13791387
    13801388@end table
     
    16001608@cindex expansion, secondary
    16011609
     1610@findex .SECONDEXPANSION
    16021611In the previous section we learned that GNU @code{make} works in two
    16031612distinct phases: a read-in phase and a target-update phase
    1604 (@pxref{Reading Makefiles, , How @code{make} Reads a Makefile}).
    1605 There is an extra wrinkle that comes in between those two phases,
    1606 right at the end of the read-in phase: at that time, all the
    1607 prerequisites of all of the targets are expanded a @emph{second time}.
    1608 In most circumstances this secondary expansion will have no effect,
    1609 since all variable and function references will have been expanded
    1610 during the initial parsing of the makefiles.  In order to take
    1611 advantage of the secondary expansion phase of the parser, then, it's
    1612 necessary to @emph{escape} the variable or function reference in the
    1613 makefile.  In this case the first expansion merely un-escapes the
    1614 reference but doesn't expand it, and expansion is left to the
    1615 secondary expansion phase.  For example, consider this makefile:
    1616 
    1617 @example
     1613(@pxref{Reading Makefiles, , How @code{make} Reads a Makefile}).  GNU
     1614make also has the ability to enable a @emph{second expansion} of the
     1615prerequisites (only) for some or all targets defined in the makefile.
     1616In order for this second expansion to occur, the special target
     1617@code{.SECONDEXPANSION} must be defined before the first prerequisite
     1618list that makes use of this feature.
     1619
     1620If that special target is defined then in between the two phases
     1621mentioned above, right at the end of the read-in phase, all the
     1622prerequisites of the targets defined after the special target are
     1623expanded a @emph{second time}.  In most circumstances this secondary
     1624expansion will have no effect, since all variable and function
     1625references will have been expanded during the initial parsing of the
     1626makefiles.  In order to take advantage of the secondary expansion
     1627phase of the parser, then, it's necessary to @emph{escape} the
     1628variable or function reference in the makefile.  In this case the
     1629first expansion merely un-escapes the reference but doesn't expand it,
     1630and expansion is left to the secondary expansion phase.  For example,
     1631consider this makefile:
     1632
     1633@example
     1634.SECONDEXPANSION:
    16181635ONEVAR = onefile
    16191636TWOVAR = twofile
     
    16391656
    16401657@example
     1658.SECONDEXPANSION:
    16411659AVAR = top
    16421660onefile: $(AVAR)
     
    16581676defer the expansion by escaping the @code{$}.  Also, secondary
    16591677expansion occurs for both explicit and implicit (pattern) rules.
    1660 Knowing this, the possible uses for this feature are almost endless.
    1661 For example:
    1662 
    1663 @example
     1678Knowing this, the possible uses for this feature increase
     1679dramatically.  For example:
     1680
     1681@example
     1682.SECONDEXPANSION:
    16641683main_OBJS := main.o try.o test.o
    16651684lib_OBJS := lib.o api.o
     
    16821701lib_SRCS := lib.c api.c
    16831702
     1703.SECONDEXPANSION:
    16841704main lib: $$(patsubst %.c,%.o,$$($$@@_SRCS))
    16851705@end example
     
    17081728of all prerequisites of rules @emph{that have already appeared} for
    17091729the same target (@code{$$+} with repetitions and @code{$$^}
    1710 without). The following example will help illustrate these behaviors:
    1711 
    1712 @example
     1730without).  The following example will help illustrate these behaviors:
     1731
     1732@example
     1733.SECONDEXPANSION:
     1734
    17131735foo: foo.1 bar.1 $$< $$^ $$+    # line #1
    17141736
     
    17181740@end example
    17191741
    1720 For the first line, all three variables (@code{$$<}, @code{$$^}, and
    1721 @code{$$+}) expand to the empty string. For the second line, they will
    1722 have values @code{foo.1}, @code{foo.1 bar.1}, and @code{foo.1 bar.1}
    1723 respectively. For the third they will have values @code{foo.1},
    1724 @code{foo.1 bar.1 foo.2 bar.2}, and @code{foo.1 bar.1 foo.2 bar.2}
    1725 respectively.
     1742In the first prerequisite list, all three variables (@code{$$<},
     1743@code{$$^}, and @code{$$+}) expand to the empty string.  In the
     1744second, they will have values @code{foo.1}, @code{foo.1 bar.1}, and
     1745@code{foo.1 bar.1} respectively.  In the third they will have values
     1746@code{foo.1}, @code{foo.1 bar.1 foo.2 bar.2}, and @code{foo.1 bar.1
     1747foo.2 bar.2} respectively.
    17261748
    17271749Rules undergo secondary expansion in makefile order, except that
     
    17511773
    17521774@example
     1775.SECONDEXPANSION:
     1776
    17531777foo: bar
    17541778
     
    17691793
    17701794@example
     1795.SECONDEXPANSION:
     1796
    17711797/tmp/foo.o:
    17721798
     
    18161842* Phony Targets::               Using a target that is not a real file's name.
    18171843* Force Targets::               You can use a target without commands
    1818                                   or prerequisites to mark other
    1819                                   targets as phony.
     1844                                  or prerequisites to mark other targets
     1845                                  as phony.
    18201846* Empty Targets::               When only the date matters and the
    18211847                                  files are empty.
     
    19011927appear on the line after the prerequisites, with a tab character, or may
    19021928appear on the same line, with a semicolon.  Either way, the effect is the
    1903 same.  @xref{Commands, ,Writing the Commands in Rules}.
     1929same.  There are other differences in the syntax of command lines.
     1930@xref{Commands, ,Writing the Commands in Rules}.
    19041931
    19051932@cindex dollar sign (@code{$}), in rules
    19061933@cindex @code{$}, in rules
    1907 @cindex rule, and @code{$}
    1908 Because dollar signs are used to start variable references, if you really
    1909 want a dollar sign in a rule you must write two of them, @samp{$$}
    1910 (@pxref{Using Variables, ,How to Use Variables}).  In prerequisite
    1911 lists you must actually write @emph{four} dollar signs (@samp{$$$$}),
    1912 due to secondary expansion (@pxref{Secondary Expansion}).
    1913 You may split a long line by inserting a backslash
    1914 followed by a newline, but this is not required, as @code{make} places no
    1915 limit on the length of a line in a makefile.
     1934@cindex rules, and @code{$}
     1935Because dollar signs are used to start @code{make} variable
     1936references, if you really want a dollar sign in a target or
     1937prerequisite you must write two of them, @samp{$$} (@pxref{Using
     1938Variables, ,How to Use Variables}).  If you have enabled secondary
     1939expansion (@pxref{Secondary Expansion}) and you want a literal dollar
     1940sign in the prerequisites lise, you must actually write @emph{four}
     1941dollar signs (@samp{$$$$}).
     1942
     1943You may split a long line by inserting a backslash followed by a
     1944newline, but this is not required, as @code{make} places no limit on
     1945the length of a line in a makefile.
    19161946
    19171947A rule tells @code{make} two things: when the targets are out of date,
     
    20042034@var{HOME}.@refill
    20052035
    2006 Wildcard expansion happens automatically in targets, in prerequisites,
    2007 and in commands (where the shell does the expansion).  In other
    2008 contexts, wildcard expansion happens only if you request it explicitly
    2009 with the @code{wildcard} function.
     2036Wildcard expansion is performed by @code{make} automatically in
     2037targets and in prerequisites.  In commands the shell is responsible
     2038for wildcard expansion.  In other contexts, wildcard expansion happens
     2039only if you request it explicitly with the @code{wildcard} function.
    20102040
    20112041The special significance of a wildcard character can be turned off by
     
    25532583word in the list will be used.
    25542584
    2555 The default value for @code{.LIBPATTERNS} is ``@samp{lib%.so lib%.a}'',
     2585The default value for @code{.LIBPATTERNS} is @samp{lib%.so lib%.a},
    25562586which provides the default behavior described above.
    25572587
     
    26442674it will do so even if @code{make} is invoked with the @code{-k} option,
    26452675which is unfortunate.  Second, and perhaps more importantly, you cannot
    2646 take advantage of the parallel build capabilities of make using this
    2647 method, since there is only one rule.
     2676take advantage of @code{make}'s ability to build targets in parallel
     2677(@pxref{Parallel, ,Parallel Execution}), since there is only one rule.
    26482678
    26492679By declaring the subdirectories as phony targets (you must do this as
     
    28672897as secondary (i.e., no target is removed because it is considered
    28682898intermediate).
     2899
     2900@findex .SECONDEXPANSION
     2901@item .SECONDEXPANSION
     2902
     2903If @code{.SECONDEXPANSION} is mentioned as a target anywhere in the
     2904makefile, then all prerequisite lists defined @emph{after} it appears
     2905will be expanded a second time after all makefiles have been read in.
     2906@xref{Secondary Expansion, ,Secondary Expansion}.
     2907
     2908The prerequisites of the special target @code{.SUFFIXES} are the list
     2909of suffixes to be used in checking for suffix rules.
     2910@xref{Suffix Rules, , Old-Fashioned Suffix Rules}.
    28692911
    28702912@findex .DELETE_ON_ERROR
     
    33763418@group
    33773419%.d: %.c
    3378         @set -e; rm -f $@@; \
     3420        @@set -e; rm -f $@@; \
    33793421         $(CC) -M $(CPPFLAGS) $< > $@@.$$$$; \
    33803422         sed 's,\($*\)\.o[ :]*,\1.o $@@ : ,g' < $@@.$$$$ > $@@; \
     
    34493491@cindex writing rule commands
    34503492
    3451 The commands of a rule consist of shell command lines to be executed one
    3452 by one.  Each command line must start with a tab, except that the first
    3453 command line may be attached to the target-and-prerequisites line with a
    3454 semicolon in between.  Blank lines and lines of just comments may appear
    3455 among the command lines; they are ignored.  (But beware, an apparently
    3456 ``blank'' line that begins with a tab is @emph{not} blank!  It is an
    3457 empty command; @pxref{Empty Commands}.)
     3493The commands of a rule consist of one or more shell command lines to
     3494be executed, one at a time, in the order they appear.  Typically, the
     3495result of executing these commands is that the target of the rule is
     3496brought up to date.
    34583497
    34593498Users use many different shell programs, but commands in makefiles are
     
    34613500otherwise.  @xref{Execution, ,Command Execution}.
    34623501
    3463 @cindex comments, in commands
    3464 @cindex commands, comments in
    3465 @cindex @code{#} (comments), in commands
    3466 The shell that is in use determines whether comments can be written on
    3467 command lines, and what syntax they use.  When the shell is
    3468 @file{/bin/sh}, a @samp{#} starts a comment that extends to the end of
    3469 the line.  The @samp{#} does not have to be at the beginning of a line.
    3470 Text on a line before a @samp{#} is not part of the comment.
    3471 
    34723502@menu
     3503* Command Syntax::              Command syntax features and pitfalls.
    34733504* Echoing::                     How to control when commands are echoed.
    34743505* Execution::                   How commands are executed.
     
    34813512@end menu
    34823513
    3483 @node Echoing, Execution, Commands, Commands
     3514@node Command Syntax, Echoing, Commands, Commands
     3515@section Command Syntax
     3516@cindex command syntax
     3517@cindex syntax of commands
     3518
     3519Makefiles have the unusual property that there are really two distinct
     3520syntaxes in one file.  Most of the makefile uses @code{make} syntax
     3521(@pxref{Makefiles, ,Writing Makefiles}).  However, commands are meant to be
     3522interpreted by the shell and so they are written using shell syntax.
     3523The @code{make} program does not try to understand shell syntax: it
     3524performs only a very few specific translations on the content of the
     3525command before handing it to the shell.
     3526
     3527Each command line must start with a tab, except that the first command
     3528line may be attached to the target-and-prerequisites line with a
     3529semicolon in between.  @emph{Any} line in the makefile that begins
     3530with a tab and appears in a ``rule context'' (that is, after a rule
     3531has been started until another rule or variable definition) will be
     3532considered a command line for that rule.  Blank lines and lines of
     3533just comments may appear among the command lines; they are ignored.
     3534
     3535Some consequences of these rules include:
     3536
     3537@itemize @bullet
     3538@item
     3539A blank line that begins with a tab is not blank: it's an empty
     3540command (@pxref{Empty Commands}).
     3541
     3542@cindex comments, in commands
     3543@cindex commands, comments in
     3544@cindex @code{#} (comments), in commands
     3545@item
     3546A comment in a command line is not a @code{make} comment; it will be
     3547passed to the shell as-is.  Whether the shell treats it as a comment
     3548or not depends on your shell.
     3549
     3550@item
     3551A variable definition in a ``rule context'' which is indented by a tab
     3552as the first character on the line, will be considered a command line,
     3553not a @code{make} variable definition, and passed to the shell.
     3554
     3555@item
     3556A conditional expression (@code{ifdef}, @code{ifeq},
     3557etc. @pxref{Conditional Syntax, ,Syntax of Conditionals}) in a ``rule
     3558context'' which is indented by a tab as the first character on the
     3559line, will be considered a command line and be passed to the shell.
     3560
     3561@end itemize
     3562
     3563@menu
     3564* Splitting Lines::             Breaking long command lines for readability.
     3565* Variables in Commands::       Using @code{make} variables in commands.
     3566@end menu
     3567
     3568@node Splitting Lines, Variables in Commands, Command Syntax, Command Syntax
     3569@subsection Splitting Command Lines
     3570@cindex commands, splitting
     3571@cindex splitting commands
     3572@cindex commands, backslash (@code{\}) in
     3573@cindex commands, quoting newlines in
     3574@cindex backslash (@code{\}), in commands
     3575@cindex @code{\} (backslash), in commands
     3576@cindex quoting newline, in commands
     3577@cindex newline, quoting, in commands
     3578
     3579One of the few ways in which @code{make} does interpret command lines
     3580is checking for a backslash just before the newline.  As in normal
     3581makefile syntax, a single command can be split into multiple lines in
     3582the makefile by placing a backslash before each newline.  A sequence
     3583of lines like this is considered a single command, and one instance of
     3584the shell will be invoked to run it.
     3585
     3586However, in contrast to how they are treated in other places in a
     3587makefile, backslash-newline pairs are @emph{not} removed from the
     3588command.  Both the backslash and the newline characters are preserved
     3589and passed to the shell.  How the backslash-newline is interpreted
     3590depends on your shell.  If the first character of the next line
     3591after the backslash-newline is a tab, then that tab (and only that
     3592tab) is removed.  Whitespace is never added to the command.
     3593
     3594For example, this makefile:
     3595
     3596@example
     3597@group
     3598all :
     3599        @@echo no\
     3600space
     3601        @@echo no\
     3602        space
     3603        @@echo one \
     3604        space
     3605        @@echo one\
     3606         space
     3607@end group
     3608@end example
     3609
     3610@noindent
     3611consists of four separate shell commands where the output is:
     3612
     3613@example
     3614@group
     3615nospace
     3616nospace
     3617one space
     3618one space
     3619@end group
     3620@end example
     3621
     3622As a more complex example, this makefile:
     3623
     3624@example
     3625@group
     3626all : ; @@echo 'hello \
     3627        world' ; echo "hello \
     3628    world"
     3629@end group
     3630@end example
     3631
     3632@noindent
     3633will run one shell with a command script of:
     3634
     3635@example
     3636@group
     3637echo 'hello \
     3638world' ; echo "hello \
     3639    world"
     3640@end group
     3641@end example
     3642
     3643@noindent
     3644which, according to shell quoting rules, will yield the following output:
     3645
     3646@example
     3647@group
     3648hello \
     3649world
     3650hello     world
     3651@end group
     3652@end example
     3653
     3654@noindent
     3655Notice how the backslash/newline pair was removed inside the string quoted
     3656with double quotes (@code{"..."}), but not from the string quoted with single
     3657quotes (@code{'...'}).  This is the way the default shell (@file{/bin/sh})
     3658handles backslash/newline pairs.  If you specify a different shell in your
     3659makefiles it may treat them differently.
     3660
     3661Sometimes you want to split a long line inside of single quotes, but
     3662you don't want the backslash-newline to appear in the quoted content.
     3663This is often the case when passing scripts to languages such as Perl,
     3664where extraneous backslashes inside the script can change its meaning
     3665or even be a syntax error.  One simple way of handling this is to
     3666place the quoted string, or even the entire command, into a
     3667@code{make} variable then use the variable in the command.  In this
     3668situation the newline quoting rules for makefiles will be used, and
     3669the backslash-newline will be removed.  If we rewrite our example
     3670above using this method:
     3671
     3672@example
     3673@group
     3674HELLO = 'hello \
     3675world'
     3676
     3677all : ; @@echo $(HELLO)
     3678@end group
     3679@end example
     3680
     3681@noindent
     3682we will get output like this:
     3683
     3684@example
     3685@group
     3686hello world
     3687@end group
     3688@end example
     3689
     3690If you like, you can also use target-specific variables
     3691(@pxref{Target-specific, ,Target-specific Variable Values}) to obtain
     3692a tighter correspondence between the variable and the command that
     3693uses it.
     3694
     3695@node Variables in Commands,  , Splitting Lines, Command Syntax
     3696@subsection Using Variables in Commands
     3697@cindex variable references in commands
     3698@cindex commands, using variables in
     3699
     3700The other way in which @code{make} processes commands is by expanding
     3701any variable references in them (@pxref{Reference,Basics of Variable
     3702References}).  This occurs after make has finished reading all the
     3703makefiles and the target is determined to be out of date; so, the
     3704commands for targets which are not rebuilt are never expanded.
     3705
     3706Variable and function references in commands have identical syntax and
     3707semantics to references elsewhere in the makefile.  They also have the
     3708same quoting rules: if you want a dollar sign to appear in your
     3709command, you must double it (@samp{$$}).  For shells like the default
     3710shell, that use dollar signs to introduce variables, it's important to
     3711keep clear in your mind whether the variable you want to reference is
     3712a @code{make} variable (use a single dollar sign) or a shell variable
     3713(use two dollar signs).  For example:
     3714
     3715@example
     3716@group
     3717LIST = one two three
     3718all:
     3719        for i in $(LIST); do \
     3720            echo $$i; \
     3721        done
     3722@end group
     3723@end example
     3724
     3725@noindent
     3726results in the following command being passed to the shell:
     3727
     3728@example
     3729@group
     3730for i in one two three; do \
     3731    echo $i; \
     3732done
     3733@end group
     3734@end example
     3735
     3736@noindent
     3737which generates the expected result:
     3738
     3739@example
     3740@group
     3741one
     3742two
     3743three
     3744@end group
     3745@end example
     3746
     3747@node Echoing, Execution, Command Syntax, Commands
    34843748@section Command Echoing
    34853749@cindex echoing of commands
     
    35303794@cindex execution, of commands
    35313795@cindex shell command, execution
    3532 @vindex SHELL @r{(command execution)}
    3533 
    3534 When it is time to execute commands to update a target, they are executed
    3535 by making a new subshell for each line.  (In practice, @code{make} may
    3536 take shortcuts that do not affect the results.)
     3796@vindex @code{SHELL} @r{(command execution)}
     3797
     3798When it is time to execute commands to update a target, they are
     3799executed by invoking a new subshell for each command line.  (In
     3800practice, @code{make} may take shortcuts that do not affect the
     3801results.)
    35373802
    35383803@cindex @code{cd} (shell command)
    3539 @strong{Please note:} this implies that shell commands such as @code{cd}
    3540 that set variables local to each process will not affect the following
    3541 command lines. @footnote{On MS-DOS, the value of current working
    3542 directory is @strong{global}, so changing it @emph{will} affect the
    3543 following command lines on those systems.}  If you want to use @code{cd}
    3544 to affect the next command, put the two on a single line with a
    3545 semicolon between them.  Then @code{make} will consider them a single
    3546 command and pass them, together, to a shell which will execute them in
    3547 sequence.  For example:
     3804@cindex shell variables, setting in commands
     3805@cindex commands setting shell variables
     3806@strong{Please note:} this implies that setting shell variables and
     3807invoking shell commands such as @code{cd} that set a context local to
     3808each process will not affect the following command lines.@footnote{On
     3809MS-DOS, the value of current working directory is @strong{global}, so
     3810changing it @emph{will} affect the following command lines on those
     3811systems.}  If you want to use @code{cd} to affect the next statement,
     3812put both statements in a single command line.  Then @code{make} will
     3813invoke one shell to run the entire line, and the shell will execute
     3814the statements in sequence.  For example:
    35483815
    35493816@example
    35503817foo : bar/lose
    3551         cd bar; gobble lose > ../foo
    3552 @end example
    3553 
    3554 @cindex commands, backslash (@code{\}) in
    3555 @cindex commands, quoting newlines in
    3556 @cindex backslash (@code{\}), in commands
    3557 @cindex @code{\} (backslash), in commands
    3558 @cindex quoting newline, in commands
    3559 @cindex newline, quoting, in commands
    3560 If you would like to split a single shell command into multiple lines of
    3561 text, you must use a backslash at the end of all but the last subline.
    3562 Such a sequence of lines is combined into a single line, by deleting the
    3563 backslash-newline sequences, before passing it to the shell.  Thus, the
    3564 following is equivalent to the preceding example:
    3565 
    3566 @example
    3567 @group
    3568 foo : bar/lose
    3569         cd bar;  \
    3570         gobble lose > ../foo
    3571 @end group
    3572 @end example
     3818        cd $(@@D) && gobble $(@@F) > ../$@@
     3819@end example
     3820
     3821@noindent
     3822Here we use the shell AND operator (@code{&&}) so that if the
     3823@code{cd} command fails, the script will fail without trying to invoke
     3824the @code{gobble} command in the wrong directory, which could cause
     3825problems (in this case it would certainly cause @file{../foo} to be
     3826truncated, at least).
     3827
     3828@menu
     3829* Choosing the Shell::          How @code{make} chooses the shell used
     3830                                  to run commands.
     3831@end menu
     3832
     3833@node Choosing the Shell,  , Execution, Execution
     3834@subsection Choosing the Shell
     3835@cindex shell, choosing the
     3836@cindex @code{SHELL}, value of
    35733837
    35743838@vindex SHELL
    35753839The program used as the shell is taken from the variable @code{SHELL}.
    3576 By default, the program @file{/bin/sh} is used.
     3840If this variable is not set in your makefile, the program
     3841@file{/bin/sh} is used as the shell.
     3842
     3843@cindex environment, @code{SHELL} in
     3844Unlike most variables, the variable @code{SHELL} is never set from the
     3845environment.  This is because the @code{SHELL} environment variable is
     3846used to specify your personal choice of shell program for interactive
     3847use.  It would be very bad for personal choices like this to affect the
     3848functioning of makefiles.  @xref{Environment, ,Variables from the
     3849Environment}.
     3850
     3851Furthermore, when you do set @code{SHELL} in your makefile that value
     3852is @emph{not} exported in the environment to commands that @code{make}
     3853invokes.  Instead, the value inherited from the user's environment, if
     3854any, is exported.  You can override this behavior by explicitly
     3855exporting @code{SHELL} (@pxref{Variables/Recursion, ,Communicating
     3856Variables to a Sub-@code{make}}), forcing it to be passed in the
     3857environment to commands.
     3858
     3859@vindex @code{MAKESHELL} @r{(MS-DOS alternative to @code{SHELL})}
     3860However, on MS-DOS and MS-Windows the value of @code{SHELL} in the
     3861environment @strong{is} used, since on those systems most users do not
     3862set this variable, and therefore it is most likely set specifically to
     3863be used by @code{make}.  On MS-DOS, if the setting of @code{SHELL} is
     3864not suitable for @code{make}, you can set the variable
     3865@code{MAKESHELL} to the shell that @code{make} should use; if set it
     3866will be used as the shell instead of the value of @code{SHELL}.
     3867
     3868@subsubheading Choosing a Shell in DOS and Windows
     3869@cindex shell, in DOS and Windows
     3870@cindex DOS, choosing a shell in
     3871@cindex Windows, choosing a shell in
     3872
     3873Choosing a shell in MS-DOS and MS-Windows is much more complex than on
     3874other systems.
    35773875
    35783876@vindex COMSPEC
     
    36283926
    36293927The effect of the above DOS-specific processing is that a Makefile that
    3630 says @samp{SHELL = /bin/sh} (as many Unix makefiles do), will work
    3631 on MS-DOS unaltered if you have e.g. @file{sh.exe} installed in some
     3928contains @samp{SHELL = /bin/sh} (as many Unix makefiles do), will work
     3929on MS-DOS unaltered if you have e.g.@: @file{sh.exe} installed in some
    36323930directory along your @code{PATH}.
    3633 
    3634 @cindex environment, @code{SHELL} in
    3635 @vindex MAKESHELL @r{(MS-DOS alternative to @code{SHELL})}
    3636 Unlike most variables, the variable @code{SHELL} is never set from the
    3637 environment.  This is because the @code{SHELL} environment variable is
    3638 used to specify your personal choice of shell program for interactive
    3639 use.  It would be very bad for personal choices like this to affect the
    3640 functioning of makefiles.  @xref{Environment, ,Variables from the
    3641 Environment}.  However, on MS-DOS and MS-Windows the value of
    3642 @code{SHELL} in the environment @strong{is} used, since on those systems
    3643 most users do not set this variable, and therefore it is most likely set
    3644 specifically to be used by @code{make}.  On MS-DOS, if the setting of
    3645 @code{SHELL} is not suitable for @code{make}, you can set the variable
    3646 @code{MAKESHELL} to the shell that @code{make} should use; this will
    3647 override the value of @code{SHELL}.
    36483931
    36493932@node Parallel, Errors, Execution, Commands
     
    40154298environment is passed to the sub-@code{make}.  You can force
    40164299@code{make} to export its value for @code{SHELL} by using the
    4017 @code{export} directive, described below.
     4300@code{export} directive, described below.  @xref{Choosing the Shell}.
    40184301
    40194302The special variable @code{MAKEFLAGS} is always exported (unless you
     
    47124995@group
    47134996ifeq (0,$@{MAKELEVEL@})
    4714 cur-dir   := $(shell pwd)
    47154997whoami    := $(shell whoami)
    47164998host-type := $(shell arch)
     
    47275009@group
    47285010$@{subdirs@}:
    4729       $@{MAKE@} cur-dir=$@{cur-dir@}/$@@ -C $@@ all
     5011        $@{MAKE@} -C $@@ all
    47305012@end group
    47315013@end example
     
    51975479simply-expanded definition, and expands the new text before appending it
    51985480to the old value just as @samp{:=} does
    5199 (@pxref{Setting, ,Setting Variables}, for a full explanation of @samp{:=}).
     5481(see @ref{Setting, ,Setting Variables}, for a full explanation of @samp{:=}).
    52005482In fact,
    52015483
     
    54385720When @code{make} runs a command script, variables defined in the
    54395721makefile are placed into the environment of that command.  This allows
    5440 you to pass values to sub-@code{make} invocations. (@pxref{Recursion,
     5722you to pass values to sub-@code{make} invocations (@pxref{Recursion,
    54415723,Recursive Use of @code{make}}).  By default, only variables that came
    54425724from the environment or the command line are passed to recursive
     
    54525734
    54535735@cindex SHELL, import from environment
    5454 Such problems would be especially likely with the variable @code{SHELL},
    5455 which is normally present in the environment to specify the user's choice
    5456 of interactive shell.  It would be very undesirable for this choice to
    5457 affect @code{make}.  So @code{make} ignores the environment value of
    5458 @code{SHELL} (except on MS-DOS and MS-Windows, where @code{SHELL} is
    5459 usually not set.  @xref{Execution, ,Special handling of SHELL on
    5460 MS-DOS}.)@refill
    5461 
    5462 @cindex SHELL, export to environment
    5463 The @code{SHELL} variable is special in another way: just as the value
    5464 of the @code{make} variable @code{SHELL} is not taken from the
    5465 environment, so also it is not placed into the environment of commands
    5466 that @code{make} invokes.  Instead, the value of @code{SHELL} from the
    5467 invoking environment is provided to the command.  You can use
    5468 @code{export SHELL} to force the value of the @code{make} variable
    5469 @code{SHELL} to be placed in the environment of commands.
     5736Such problems would be especially likely with the variable
     5737@code{SHELL}, which is normally present in the environment to specify
     5738the user's choice of interactive shell.  It would be very undesirable
     5739for this choice to affect @code{make}; so, @code{make} handles the
     5740@code{SHELL} environment variable in a special way; see @ref{Choosing
     5741the Shell}.@refill
    54705742
    54715743@node Target-specific, Pattern-specific, Environment, Using Variables
     
    55155787will be in effect.  Note that this variable is actually distinct from
    55165788any ``global'' value: the two variables do not have to have the same
    5517 flavor (recursive vs. static).
     5789flavor (recursive vs.@: static).
    55185790
    55195791Target-specific variables have the same priority as any other makefile
     
    55265798you define a target-specific variable that variable value is also in
    55275799effect for all prerequisites of this target, and all their
    5528 prerequisites, etc. (unless those prerequisites override that variable
     5800prerequisites, etc.@: (unless those prerequisites override that variable
    55295801with their own target-specific variable value).  So, for example, a
    55305802statement like this:
     
    59256197* Text Functions::              General-purpose text manipulation functions.
    59266198* File Name Functions::         Functions for manipulating file names.
     6199* Conditional Functions::       Functions that implement conditions.
    59276200* Foreach Function::            Repeat some text with controlled variation.
    5928 * If Function::                 Conditionally expand a value.
    59296201* Call Function::               Expand a user-defined function.
    59306202* Value Function::              Return the un-expanded value of a variable.
    59316203* Eval Function::               Evaluate the arguments as makefile syntax.
    59326204* Origin Function::             Find where a variable got its value.
     6205* Flavor Function::             Find out the flavor of a variable.
    59336206* Shell Function::              Substitute the output of a shell command.
    59346207* Make Control Functions::      Functions that control how make runs.
     
    63456618Directive, , The @code{override} Directive}).
    63466619
    6347 @node File Name Functions, Foreach Function, Text Functions, Functions
     6620@node File Name Functions, Conditional Functions, Text Functions, Functions
    63486621@section Functions for File Names
    63496622@cindex functions, for file names
     
    65056778For each file name in @var{names} return the canonical absolute name.
    65066779A canonical name does not contain any @code{.} or @code{..} components,
    6507 nor any repeated path separators (@code{/}) or symlinks. In case of a
    6508 failure the empty string is returned. Consult the @code{realpath(3)}
     6780nor any repeated path separators (@code{/}) or symlinks.  In case of a
     6781failure the empty string is returned.  Consult the @code{realpath(3)}
    65096782documentation for a list of possible failure causes.
    65106783
     
    65156788For each file name in @var{names} return an absolute name that does
    65166789not contain any @code{.} or @code{..} components, nor any repeated path
    6517 separators (@code{/}). Note that in contrast to @code{realpath}
     6790separators (@code{/}).  Note that, in contrast to @code{realpath}
    65186791function, @code{abspath} does not resolve symlinks and does not require
    6519 the file names to refer to an existing file or directory. Use the
     6792the file names to refer to an existing file or directory.  Use the
    65206793@code{wildcard} function to test for existence.
    65216794@end table
    65226795
    6523 @node Foreach Function, If Function, File Name Functions, Functions
     6796@node Conditional Functions, Foreach Function, File Name Functions, Functions
     6797@section Functions for Conditionals
     6798@findex if
     6799@cindex conditional expansion
     6800There are three functions that provide conditional expansion.  A key
     6801aspect of these functions is that not all of the arguments are
     6802expanded initially.  Only those arguments which need to be expanded,
     6803will be expanded.
     6804
     6805@table @code
     6806@item $(if @var{condition},@var{then-part}[,@var{else-part}])
     6807@findex if
     6808The @code{if} function provides support for conditional expansion in a
     6809functional context (as opposed to the GNU @code{make} makefile
     6810conditionals such as @code{ifeq} (@pxref{Conditional Syntax, ,Syntax of
     6811Conditionals}).
     6812
     6813The first argument, @var{condition}, first has all preceding and
     6814trailing whitespace stripped, then is expanded.  If it expands to any
     6815non-empty string, then the condition is considered to be true.  If it
     6816expands to an empty string, the condition is considered to be false.
     6817
     6818If the condition is true then the second argument, @var{then-part}, is
     6819evaluated and this is used as the result of the evaluation of the entire
     6820@code{if} function.
     6821
     6822If the condition is false then the third argument, @var{else-part}, is
     6823evaluated and this is the result of the @code{if} function.  If there is
     6824no third argument, the @code{if} function evaluates to nothing (the
     6825empty string).
     6826
     6827Note that only one of the @var{then-part} or the @var{else-part} will be
     6828evaluated, never both.  Thus, either can contain side-effects (such as
     6829@code{shell} function calls, etc.)
     6830
     6831@item $(or @var{condition1}[,@var{condition2}[,@var{condition3}@dots{}]])
     6832@findex or
     6833The @code{or} function provides a ``short-circuiting'' OR operation.
     6834Each argument is expanded, in order.  If an argument expands to a
     6835non-empty string the processing stops and the result of the expansion
     6836is that string.  If, after all arguments are expanded, all of them are
     6837false (empty), then the result of the expansion is the empty string.
     6838
     6839@item $(and @var{condition1}[,@var{condition2}[,@var{condition3}@dots{}]])
     6840@findex and
     6841The @code{and} function provides a ``short-circuiting'' AND operation.
     6842Each argument is expanded, in order.  If an argument expands to an
     6843empty string the processing stops and the result of the expansion is
     6844the empty string.  If all arguments expand to a non-empty string then
     6845the result of the expansion is the expansion of the last argument.
     6846
     6847@end table
     6848
     6849@node Foreach Function, Call Function, Conditional Functions, Functions
    65246850@section The @code{foreach} Function
    65256851@findex foreach
     
    66096935no?), but it is more likely to be a mistake.
    66106936
    6611 @node If Function, Call Function, Foreach Function, Functions
    6612 @section The @code{if} Function
    6613 @findex if
    6614 @cindex conditional expansion
    6615 
    6616 The @code{if} function provides support for conditional expansion in a
    6617 functional context (as opposed to the GNU @code{make} makefile
    6618 conditionals such as @code{ifeq} (@pxref{Conditional Syntax, ,Syntax of
    6619 Conditionals}).
    6620 
    6621 An @code{if} function call can contain either two or three arguments:
    6622 
    6623 @example
    6624 $(if @var{condition},@var{then-part}[,@var{else-part}])
    6625 @end example
    6626 
    6627 The first argument, @var{condition}, first has all preceding and
    6628 trailing whitespace stripped, then is expanded.  If it expands to any
    6629 non-empty string, then the condition is considered to be true.  If it
    6630 expands to an empty string, the condition is considered to be false.
    6631 
    6632 If the condition is true then the second argument, @var{then-part}, is
    6633 evaluated and this is used as the result of the evaluation of the entire
    6634 @code{if} function.
    6635 
    6636 If the condition is false then the third argument, @var{else-part}, is
    6637 evaluated and this is the result of the @code{if} function.  If there is
    6638 no third argument, the @code{if} function evaluates to nothing (the
    6639 empty string).
    6640 
    6641 Note that only one of the @var{then-part} or the @var{else-part} will be
    6642 evaluated, never both.  Thus, either can contain side-effects (such as
    6643 @code{shell} function calls, etc.)
    6644 
    6645 @node Call Function, Value Function, If Function, Functions
     6937@node Call Function, Value Function, Foreach Function, Functions
    66466938@section The @code{call} Function
    66476939@findex call
     
    67137005
    67147006The @code{call} function can be nested.  Each recursive invocation gets
    6715 its own local values for @code{$(1)}, etc. that mask the values of
     7007its own local values for @code{$(1)}, etc.@: that mask the values of
    67167008higher-level @code{call}.  For example, here is an implementation of a
    67177009@dfn{map} function:
     
    68507142@end example
    68517143
    6852 @node Origin Function, Shell Function, Eval Function, Functions
     7144@node Origin Function, Flavor Function, Eval Function, Functions
    68537145@section The @code{origin} Function
    68547146@findex origin
     
    69597251@xref{Text Functions, , Functions for String Substitution and Analysis}.
    69607252
    6961 @node Shell Function, Make Control Functions, Origin Function, Functions
     7253@node Flavor Function, Shell Function, Origin Function, Functions
     7254@section The @code{flavor} Function
     7255@findex flavor
     7256@cindex variables, flavor of
     7257@cindex flavor of variable
     7258
     7259The @code{flavor} function is unlike most other functions (and like
     7260@code{origin} function) in that it does not operate on the values of
     7261variables; it tells you something @emph{about} a variable.
     7262Specifically, it tells you the flavor of a variable (@pxref{Flavors,
     7263,The Two Flavors of Variables}).
     7264
     7265The syntax of the @code{flavor} function is:
     7266
     7267@example
     7268$(flavor @var{variable})
     7269@end example
     7270
     7271Note that @var{variable} is the @emph{name} of a variable to inquire about;
     7272not a @emph{reference} to that variable.  Therefore you would not normally
     7273use a @samp{$} or parentheses when writing it.  (You can, however, use a
     7274variable reference in the name if you want the name not to be a constant.)
     7275
     7276The result of this function is a string that identifies the flavor of the
     7277variable @var{variable}:
     7278
     7279@table @samp
     7280@item undefined
     7281
     7282if @var{variable} was never defined.
     7283
     7284@item recursive
     7285
     7286if @var{variable} is a recursively expanded variable.
     7287
     7288@item simple
     7289
     7290if @var{variable} is a simply expanded variable.
     7291
     7292@end table
     7293
     7294
     7295@node Shell Function, Make Control Functions, Flavor Function, Functions
    69627296@section The @code{shell} Function
    69637297@findex shell
     
    69847318spawning a new shell, you should carefully consider the performance
    69857319implications of using the @code{shell} function within recursively
    6986 expanded variables vs. simply expanded variables (@pxref{Flavors, ,The
     7320expanded variables vs.@: simply expanded variables (@pxref{Flavors, ,The
    69877321Two Flavors of Variables}).
    69887322
     
    70847418things and many others.
    70857419
     7420@cindex exit status of make
    70867421The exit status of @code{make} is always one of three values:
    70877422@table @code
     
    75507885Consider all targets out-of-date.  GNU @code{make} proceeds to
    75517886consider targets and their prerequisites using the normal algorithms;
    7552 however, all these targets are remade, regardless of the status of
    7553 their prerequisites.
     7887however, all targets so considered are always remade regardless of the
     7888status of their prerequisites.  To avoid infinite recursion, if
     7889@code{MAKE_RESTARTS} (@pxref{Special Variables, , Other Special
     7890Variables}) is set to a number greater than 0 this option is disabled
     7891when considering whether to remake makefiles (@pxref{Remaking
     7892Makefiles, , How Makefiles Are Remade}).
    75547893
    75557894@item -C @var{dir}
     
    79078246* Pattern Rules::               How to define new implicit rules.
    79088247* Last Resort::                 How to define commands for rules which
    7909                                 cannot find any.
     8248                                  cannot find any.
    79108249* Suffix Rules::                The old-fashioned style of implicit rule.
    79118250* Implicit Rule Search::        The precise algorithm for applying
     
    80028341@samp{--no-builtin-rules} option cancels all predefined rules.
    80038342
     8343This manual only documents the default rules available on POSIX-based
     8344operating systems.  Other operating systems, such as VMS, Windows,
     8345OS/2, etc. may have different sets of default rules.  To see the full
     8346list of default rules and variables available in your version of GNU
     8347@code{make}, run @samp{make -p} in a directory with no makefile.
     8348
    80048349Not all of these rules will always be defined, even when the @samp{-r}
    80058350option is not given.  Many of the predefined implicit rules are
     
    80088353the special target @code{.SUFFIXES}).  The default suffix list is:
    80098354@code{.out}, @code{.a}, @code{.ln}, @code{.o}, @code{.c}, @code{.cc},
    8010 @code{.C}, @code{.p}, @code{.f}, @code{.F}, @code{.r}, @code{.y},
     8355@code{.C}, @code{.cpp}, @code{.p}, @code{.f}, @code{.F}, @code{.r}, @code{.y},
    80118356@code{.l}, @code{.s}, @code{.S}, @code{.mod}, @code{.sym}, @code{.def},
    80128357@code{.h}, @code{.info}, @code{.dvi}, @code{.tex}, @code{.texinfo},
     
    80338378@cindex C++, rule to compile
    80348379@pindex g++
     8380@pindex .cc
     8381@pindex .cpp
    80358382@pindex .C
    8036 @pindex .cc
    8037 @file{@var{n}.o} is made automatically from @file{@var{n}.cc} or
    8038 @file{@var{n}.C} with a command of the form @samp{$(CXX) -c $(CPPFLAGS)
    8039 $(CXXFLAGS)}.  We encourage you to use the suffix @samp{.cc} for C++
    8040 source files instead of @samp{.C}.@refill
     8383@file{@var{n}.o} is made automatically from @file{@var{n}.cc},
     8384@file{@var{n}.cpp}, or @file{@var{n}.C} with a command of the form
     8385@samp{$(CXX) -c $(CPPFLAGS) $(CXXFLAGS)}.  We encourage you to use the
     8386suffix @samp{.cc} for C++ source files instead of @samp{.C}.@refill
    80418387
    80428388@item Compiling Pascal programs
     
    82998645
    83008646The commands in built-in implicit rules make liberal use of certain
    8301 predefined variables.  You can alter these variables in the makefile,
    8302 with arguments to @code{make}, or in the environment to alter how the
    8303 implicit rules work without redefining the rules themselves.  You can
    8304 cancel all variables used by implicit rules with the @samp{-R} or
    8305 @samp{--no-builtin-variables} option.
     8647predefined variables.  You can alter the values of these variables in
     8648the makefile, with arguments to @code{make}, or in the environment to
     8649alter how the implicit rules work without redefining the rules
     8650themselves.  You can cancel all variables used by implicit rules with
     8651the @samp{-R} or @samp{--no-builtin-variables} option.
    83068652
    83078653For example, the command used to compile a C source file actually says
     
    83228668with spaces.
    83238669
    8324 Here is a table of variables used as names of programs in built-in rules:
     8670The following tables describe of some of the more commonly-used predefined
     8671variables.  This list is not exhaustive, and the default values shown here may
     8672not be what are selected by @code{make} for your environment.  To see the
     8673complete list of predefined variables for your instance of GNU @code{make} you
     8674can run @samp{make -p} in a directory with no makefiles.
     8675
     8676Here is a table of some of the more common variables used as names of
     8677programs in built-in rules:
     8678makefiles.
    83258679
    83268680@table @code
     
    83328686@item AS
    83338687@vindex AS
    8334 Program for doing assembly; default @samp{as}.
     8688Program for compiling assembly files; default @samp{as}.
    83358689@pindex as
    83368690
     
    83388692@vindex CC
    83398693Program for compiling C programs; default @samp{cc}.
     8694@pindex cc
     8695
     8696@item CO
     8697@vindex CO
     8698Program for checking out files from RCS; default @samp{co}.
    83408699@pindex cc
    83418700
     
    83688727@item LEX
    83698728@vindex LEX
    8370 Program to use to turn Lex grammars into C programs or Ratfor programs;
    8371 default @samp{lex}.
     8729Program to use to turn Lex grammars into source code; default @samp{lex}.
    83728730@pindex lex
     8731
     8732@item YACC
     8733@vindex YACC
     8734Program to use to turn Yacc grammars into source code; default @samp{yacc}.
     8735@pindex yacc
     8736
     8737@item LINT
     8738@vindex LINT
     8739Program to use to run lint on source code; default @samp{lint}.
     8740@pindex lint
     8741
     8742@item M2C
     8743@vindex M2C
     8744Program to use to compile Modula-2 source code; default @samp{m2c}.
     8745@pindex m2c
    83738746
    83748747@item PC
     
    83768749Program for compiling Pascal programs; default @samp{pc}.
    83778750@pindex pc
    8378 
    8379 @item YACC
    8380 @vindex YACC
    8381 Program to use to turn Yacc grammars into C programs; default @samp{yacc}.
    8382 @pindex yacc
    8383 
    8384 @item YACCR
    8385 @vindex YACCR
    8386 Program to use to turn Yacc grammars into Ratfor
    8387 programs; default @samp{yacc -r}.
    83888751
    83898752@item MAKEINFO
     
    84728835@item LDFLAGS
    84738836@vindex LDFLAGS
    8474 Extra flags to give to compilers when they are
    8475 supposed to invoke the linker, @samp{ld}.
     8837Extra flags to give to compilers when they are supposed to invoke the linker,
     8838@samp{ld}.
    84768839
    84778840@item LFLAGS
     
    84798842Extra flags to give to Lex.
    84808843
     8844@item YFLAGS
     8845@vindex YFLAGS
     8846Extra flags to give to Yacc.
     8847
    84818848@item PFLAGS
    84828849@vindex PFLAGS
     
    84878854Extra flags to give to the Fortran compiler for Ratfor programs.
    84888855
    8489 @item YFLAGS
    8490 @vindex YFLAGS
    8491 Extra flags to give to Yacc.
     8856@item LINTFLAGS
     8857@vindex LINTFLAGS
     8858Extra flags to give to lint.
    84928859@end table
    84938860
     
    86298996
    86308997@samp{%} in a prerequisite of a pattern rule stands for the same stem
    8631 that was matched by the @samp{%} in the target.  In order for
    8632 the pattern rule to apply, its target pattern must match the file name
    8633 under consideration, and its prerequisite patterns must name files that
    8634 exist or can be made.  These files become prerequisites of the target.
     8998that was matched by the @samp{%} in the target.  In order for the
     8999pattern rule to apply, its target pattern must match the file name
     9000under consideration and all of its prerequisites (after pattern
     9001substitution) must name files that exist or can be made.  These files
     9002become prerequisites of the target.
    86359003@cindex prerequisite pattern, implicit
    86369004
     
    89829350names, along with the slash that ends them, are added on to the
    89839351prerequisite file names generated from the pattern rule's prerequisite
    8984 patterns and the file name. The directories are ignored only for the
     9352patterns and the file name.  The directories are ignored only for the
    89859353purpose of finding an implicit rule to use, not in the application of
    89869354that rule.  Thus, @samp{e%t} matches the file name @file{src/eat},
     
    93869754
    93879755In fact, nearly all archive member targets are updated in just this way
    9388 and there is an implicit rule to do it for you.  @strong{Note:} The
     9756and there is an implicit rule to do it for you.  @strong{Please note:} The
    93899757@samp{c} flag to @code{ar} is required if the archive file does not
    93909758already exist.
     
    1012410492@xref{Origin Function, , The @code{origin} Function}.
    1012510493
     10494@item $(flavor @var{variable})
     10495
     10496Return a string describing the flavor of the @code{make} variable
     10497@var{variable}.@*
     10498@xref{Flavor Function, , The @code{flavor} Function}.
     10499
    1012610500@item $(foreach @var{var},@var{words},@var{text})
    1012710501
     
    1013310507
    1013410508Evaluate the variable @var{var} replacing any references to @code{$(1)},
    10135 @code{$(2)} with the first, second, etc. @var{param} values.@*
     10509@code{$(2)} with the first, second, etc.@: @var{param} values.@*
    1013610510@xref{Call Function, ,The @code{call} Function}.
    1013710511
     
    1022810602commands.  @xref{Execution, ,Command Execution}.  The @code{SHELL}
    1022910603variable is handled specially when importing from and exporting to the
    10230 environment.  @xref{Environment, ,Using Variable from the Environment}.
     10604environment.  @xref{Choosing the Shell}.
    1023110605
    1023210606@item MAKESHELL
    1023310607
    1023410608On MS-DOS only, the name of the command interpreter that is to be used
    10235 by @code{make}. This value takes precedence over the value of
     10609by @code{make}.  This value takes precedence over the value of
    1023610610@code{SHELL}.  @xref{Execution, ,MAKESHELL variable}.
    1023710611
     
    1072811102@printindex fn
    1072911103
    10730 @summarycontents
    10731 @contents
    1073211104@bye
  • vendor/gnumake/current/dosbuild.bat

    r54 r501  
    1 @echo Building Make for MSDOS
    2 @rem Echo ON so they will see what is going on.
     1@echo off
     2rem Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free
     3rem Software Foundation, Inc.
     4rem This file is part of GNU Make.
     5
     6rem GNU Make is free software; you can redistribute it and/or modify it under the
     7rem terms of the GNU General Public License as published by the Free Software
     8rem Foundation; either version 2, or (at your option) any later version.
     9
     10rem GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     11rem WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     12rem A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     13
     14rem You should have received a copy of the GNU General Public License along with
     15rem GNU Make; see the file COPYING.  If not, write to the Free Software
     16rem Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
     17
     18echo Building Make for MSDOS
     19
     20rem Echo ON so they will see what is going on.
    321@echo on
    422gcc  -c -I. -I./glob -DHAVE_CONFIG_H -O2 -g commands.c -o commands.o
     
    1735gcc  -c -I. -I./glob -DHAVE_CONFIG_H -O2 -g function.c -o function.o
    1836gcc  -c -I. -I./glob -DHAVE_CONFIG_H -O2 -g vpath.c -o vpath.o
     37gcc  -c -I. -I./glob -DHAVE_CONFIG_H -O2 -g hash.c -o hash.o
     38gcc  -c -I. -I./glob -DHAVE_CONFIG_H -O2 -g strcache.c -o strcache.o
    1939gcc  -c -I. -I./glob -DHAVE_CONFIG_H -O2 -g version.c -o version.o
    2040gcc  -c -I. -I./glob -DHAVE_CONFIG_H -O2 -g ar.c -o ar.o
     
    3353echo commands.o > respf.$$$
    3454for %%f in (job dir file misc main read remake rule implicit default variable) do echo %%f.o >> respf.$$$
    35 for %%f in (expand function vpath version ar arscan signame remote-stub getopt getopt1) do echo %%f.o >> respf.$$$
     55for %%f in (expand function vpath hash strcache version ar arscan signame remote-stub getopt getopt1) do echo %%f.o >> respf.$$$
    3656echo glob/libglob.a >> respf.$$$
    3757@echo Linking...
  • vendor/gnumake/current/expand.c

    r280 r501  
    11/* Variable expansion functions for GNU Make.
    2 Copyright (C) 1988, 89, 91, 92, 93, 95 Free Software Foundation, Inc.
     2Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
     31998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software
     4Foundation, Inc.
    35This file is part of GNU Make.
    46
    5 GNU Make is free software; you can redistribute it and/or modify
    6 it under the terms of the GNU General Public License as published by
    7 the Free Software Foundation; either version 2, or (at your option)
    8 any later version.
    9 
    10 GNU Make is distributed in the hope that it will be useful,
    11 but WITHOUT ANY WARRANTY; without even the implied warranty of
    12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    13 GNU General Public License for more details.
    14 
    15 You should have received a copy of the GNU General Public License
    16 along with GNU Make; see the file COPYING.  If not, write to
    17 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    18 Boston, MA 02111-1307, USA.  */
     7GNU Make is free software; you can redistribute it and/or modify it under the
     8terms of the GNU General Public License as published by the Free Software
     9Foundation; either version 2, or (at your option) any later version.
     10
     11GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     12WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     13A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     14
     15You should have received a copy of the GNU General Public License along with
     16GNU Make; see the file COPYING.  If not, write to the Free Software
     17Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
    1918
    2019#include "make.h"
     
    2726#include "variable.h"
    2827#include "rule.h"
     28
     29/* Initially, any errors reported when expanding strings will be reported
     30   against the file where the error appears.  */
     31const struct floc **expanding_var = &reading_file;
    2932
    3033/* The next two describe the variable output buffer.
     
    98101{
    99102  char *value;
     103  const struct floc *this_var;
     104  const struct floc **saved_varp;
    100105  struct variable_set_list *save = 0;
    101106  int set_reading = 0;
    102107
     108  /* Don't install a new location if this location is empty.
     109     This can happen for command-line variables, builtin variables, etc.  */
     110  saved_varp = expanding_var;
     111  if (v->fileinfo.filenm)
     112    {
     113      this_var = &v->fileinfo;
     114      expanding_var = &this_var;
     115    }
     116
     117  /* If we have no other file-reading context, use the variable's context. */
     118  if (!reading_file)
     119    {
     120      set_reading = 1;
     121      reading_file = &v->fileinfo;
     122    }
     123
    103124  if (v->expanding)
    104125    {
    105126      if (!v->exp_count)
    106127        /* Expanding V causes infinite recursion.  Lose.  */
    107         fatal (reading_file,
     128        fatal (*expanding_var,
    108129               _("Recursive variable `%s' references itself (eventually)"),
    109130               v->name);
     
    115136      save = current_variable_set_list;
    116137      current_variable_set_list = file->variables;
    117     }
    118 
    119   /* If we have no other file-reading context, use the variable's context. */
    120   if (!reading_file)
    121     {
    122       set_reading = 1;
    123       reading_file = &v->fileinfo;
    124138    }
    125139
     
    133147  if (set_reading)
    134148    reading_file = 0;
     149
    135150  if (file)
    136151    current_variable_set_list = save;
     152
     153  expanding_var = saved_varp;
    137154
    138155  return value;
     
    208225      p1 = strchr (p, '$');
    209226
    210       o = variable_buffer_output (o, p, p1 != 0 ? p1 - p : strlen (p) + 1);
     227      o = variable_buffer_output (o, p, p1 != 0 ? (unsigned int)(p1 - p) : strlen (p) + 1);
    211228
    212229      if (p1 == 0)
     
    249266            if (end == 0)
    250267              /* Unterminated variable reference.  */
    251               fatal (reading_file, _("unterminated variable reference"));
     268              fatal (*expanding_var, _("unterminated variable reference"));
    252269            p1 = lindex (beg, end, '$');
    253270            if (p1 != 0)
     
    375392          /* A $ followed by a random char is a variable reference:
    376393             $a is equivalent to $(a).  */
    377           {
    378             /* We could do the expanding here, but this way
    379                avoids code repetition at a small performance cost.  */
    380             char name[5];
    381             name[0] = '$';
    382             name[1] = '(';
    383             name[2] = *p;
    384             name[3] = ')';
    385             name[4] = '\0';
    386             p1 = allocated_variable_expand (name);
    387             o = variable_buffer_output (o, p1, strlen (p1));
    388             free (p1);
    389           }
     394          o = reference_variable (o, p, 1);
    390395
    391396          break;
     
    503508    buf = variable_buffer_output (buf, " ", 1);
    504509
    505   return variable_buffer_output (buf, v->value, strlen (v->value));
     510  /* Either expand it or copy it, depending.  */
     511  if (! v->recursive)
     512    return variable_buffer_output (buf, v->value, strlen (v->value));
     513
     514  buf = variable_expand_string (buf, v->value, strlen (v->value));
     515  return (buf + strlen (buf));
    506516}
    507517
     
    510520allocated_variable_append (const struct variable *v)
    511521{
    512   char *val, *retval;
     522  char *val;
    513523
    514524  /* Construct the appended variable value.  */
     
    526536  variable_buffer_length = olen;
    527537
    528   /* Now expand it and return that.  */
    529 
    530   retval = allocated_variable_expand (val);
    531 
    532   free (val);
    533   return retval;
     538  return val;
    534539}
    535540
  • vendor/gnumake/current/file.c

    r280 r501  
    1 /* Target file hash table management for GNU Make.
     1/* Target file management for GNU Make.
    22Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
    3 2002 Free Software Foundation, Inc.
     31998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software
     4Foundation, Inc.
    45This file is part of GNU Make.
    56
    6 GNU Make is free software; you can redistribute it and/or modify
    7 it under the terms of the GNU General Public License as published by
    8 the Free Software Foundation; either version 2, or (at your option)
    9 any later version.
    10 
    11 GNU Make is distributed in the hope that it will be useful,
    12 but WITHOUT ANY WARRANTY; without even the implied warranty of
    13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    14 GNU General Public License for more details.
    15 
    16 You should have received a copy of the GNU General Public License
    17 along with GNU Make; see the file COPYING.  If not, write to
    18 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    19 Boston, MA 02111-1307, USA.  */
     7GNU Make is free software; you can redistribute it and/or modify it under the
     8terms of the GNU General Public License as published by the Free Software
     9Foundation; either version 2, or (at your option) any later version.
     10
     11GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     12WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     13A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     14
     15You should have received a copy of the GNU General Public License along with
     16GNU Make; see the file COPYING.  If not, write to the Free Software
     17Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
    2018
    2119#include "make.h"
     
    9189#ifdef VMS
    9290# ifndef WANT_CASE_SENSITIVE_TARGETS
    93   {
    94     register char *n;
    95     lname = (char *) malloc (strlen (name) + 1);
    96     for (n = name, ln = lname; *n != '\0'; ++n, ++ln)
    97       *ln = isupper ((unsigned char)*n) ? tolower ((unsigned char)*n) : *n;
    98     *ln = '\0';
    99     name = lname;
    100   }
     91  if (*name != '.')
     92    {
     93      register char *n;
     94      lname = (char *) malloc (strlen (name) + 1);
     95      for (n = name, ln = lname; *n != '\0'; ++n, ++ln)
     96        *ln = isupper ((unsigned char)*n) ? tolower ((unsigned char)*n) : *n;
     97      *ln = '\0';
     98      name = lname;
     99    }
    101100# endif
    102101
     
    127126  f = (struct file *) hash_find_item (&files, &file_key);
    128127#if defined(VMS) && !defined(WANT_CASE_SENSITIVE_TARGETS)
    129   free (lname);
     128  if (*name != '.')
     129    free (lname);
    130130#endif
    131131  return f;
     
    146146
    147147#if defined(VMS) && !defined(WANT_CASE_SENSITIVE_TARGETS)
    148   {
    149     register char *n;
    150     lname = (char *) malloc (strlen (name) + 1);
    151     for (n = name, ln = lname; *n != '\0'; ++n, ++ln)
    152       {
    153         if (isupper ((unsigned char)*n))
    154           *ln = tolower ((unsigned char)*n);
    155         else
    156           *ln = *n;
    157       }
    158 
    159     *ln = 0;
    160     /* Creates a possible leak, old value of name is unreachable, but I
    161        currently don't know how to fix it. */
    162     name = lname;
    163   }
     148  if (*name != '.')
     149    {
     150      register char *n;
     151      lname = (char *) malloc (strlen (name) + 1);
     152      for (n = name, ln = lname; *n != '\0'; ++n, ++ln)
     153        {
     154          if (isupper ((unsigned char)*n))
     155            *ln = tolower ((unsigned char)*n);
     156          else
     157            *ln = *n;
     158        }
     159
     160      *ln = 0;
     161      /* Creates a possible leak, old value of name is unreachable, but I
     162         currently don't know how to fix it. */
     163      name = lname;
     164    }
    164165#endif
    165166
     
    170171    {
    171172#if defined(VMS) && !defined(WANT_CASE_SENSITIVE_TARGETS)
    172       free(lname);
     173      if (*name != '.')
     174        free (lname);
    173175#endif
    174176      return f;
     
    181183
    182184  if (HASH_VACANT (f))
    183     hash_insert_at (&files, new, file_slot);
     185    {
     186      new->last = new;
     187      hash_insert_at (&files, new, file_slot);
     188    }
    184189  else
    185190    {
    186191      /* There is already a double-colon entry for this file.  */
    187192      new->double_colon = f;
    188       while (f->prev != 0)
    189         f = f->prev;
    190       f->prev = new;
     193      f->last->prev = new;
     194      f->last = new;
    191195    }
    192196
     
    409413
    410414
     415struct dep *
     416parse_prereqs (char *p)
     417{
     418  struct dep *new = (struct dep *)
     419    multi_glob (parse_file_seq (&p, '|', sizeof (struct dep), 1),
     420                sizeof (struct dep));
     421
     422  if (*p)
     423    {
     424      /* Files that follow '|' are "order-only" prerequisites that satisfy the
     425         dependency by existing: their modification times are irrelevant.  */
     426      struct dep *ood;
     427
     428      ++p;
     429      ood = (struct dep *)
     430        multi_glob (parse_file_seq (&p, '\0', sizeof (struct dep), 1),
     431                    sizeof (struct dep));
     432
     433      if (! new)
     434        new = ood;
     435      else
     436        {
     437          struct dep *dp;
     438          for (dp = new; dp->next != NULL; dp = dp->next)
     439            ;
     440          dp->next = ood;
     441        }
     442
     443      for (; ood != NULL; ood = ood->next)
     444        ood->ignore_mtime = 1;
     445    }
     446
     447  return new;
     448}
     449
     450
    411451/* Set the intermediate flag.  */
    412452
     
    422462expand_deps (struct file *f)
    423463{
    424   struct dep *d, *d1;
    425   struct dep *new = 0;
     464  struct dep *d;
    426465  struct dep *old = f->deps;
     466  char *file_stem = f->stem;
    427467  unsigned int last_dep_has_cmds = f->updating;
    428468  int initialized = 0;
     
    433473  for (d = old; d != 0; d = d->next)
    434474    {
    435       if (d->name != 0)
     475      struct dep *new, *d1;
     476      char *p;
     477
     478      if (! d->name)
     479        continue;
     480
     481      /* Create the dependency list.
     482         If we're not doing 2nd expansion, then it's just the name.  */
     483      if (! d->need_2nd_expansion)
     484        p = d->name;
     485      else
    436486        {
    437           char *p;
    438 
    439           /* If we need a second expansion on these, set up the file
    440              variables, etc.  It takes a lot of extra memory and processing
    441              to do this, so only do it if it's needed.  */
    442           if (! d->need_2nd_expansion)
    443             p = d->name;
     487          /* If it's from a static pattern rule, convert the patterns into
     488             "$*" so they'll expand properly.  */
     489          if (d->staticpattern)
     490            {
     491              char *o;
     492              char *buffer = variable_expand ("");
     493
     494              o = subst_expand (buffer, d->name, "%", "$*", 1, 2, 0);
     495
     496              free (d->name);
     497              d->name = savestring (buffer, o - buffer);
     498              d->staticpattern = 0; /* Clear staticpattern so that we don't
     499                                       re-expand %s below. */
     500            }
     501
     502          /* We are going to do second expansion so initialize file variables
     503             for the file. Since the stem for static pattern rules comes from
     504             individual dep lines, we will temporarily set f->stem to d->stem.
     505          */
     506          if (!initialized)
     507            {
     508              initialize_file_variables (f, 0);
     509              initialized = 1;
     510            }
     511
     512          if (d->stem != 0)
     513            f->stem = d->stem;
     514
     515          set_file_variables (f);
     516
     517          p = variable_expand_for_file (d->name, f);
     518
     519          if (d->stem != 0)
     520            f->stem = file_stem;
     521        }
     522
     523      /* Parse the prerequisites.  */
     524      new = parse_prereqs (p);
     525
     526      /* If this dep list was from a static pattern rule, expand the %s.  We
     527         use patsubst_expand to translate the prerequisites' patterns into
     528         plain prerequisite names.  */
     529      if (new && d->staticpattern)
     530        {
     531          char *pattern = "%";
     532          char *buffer = variable_expand ("");
     533          struct dep *dp = new, *dl = 0;
     534
     535          while (dp != 0)
     536            {
     537              char *percent = find_percent (dp->name);
     538              if (percent)
     539                {
     540                  /* We have to handle empty stems specially, because that
     541                     would be equivalent to $(patsubst %,dp->name,) which
     542                     will always be empty.  */
     543                  if (d->stem[0] == '\0')
     544                    /* This needs memmove() in ISO C.  */
     545                    bcopy (percent+1, percent, strlen (percent));
     546                  else
     547                    {
     548                      char *o = patsubst_expand (buffer, d->stem, pattern,
     549                                                 dp->name, pattern+1,
     550                                                 percent+1);
     551                      if (o == buffer)
     552                        dp->name[0] = '\0';
     553                      else
     554                        {
     555                          free (dp->name);
     556                          dp->name = savestring (buffer, o - buffer);
     557                        }
     558                    }
     559
     560                  /* If the name expanded to the empty string, ignore it.  */
     561                  if (dp->name[0] == '\0')
     562                    {
     563                      struct dep *df = dp;
     564                      if (dp == new)
     565                        dp = new = new->next;
     566                      else
     567                        dp = dl->next = dp->next;
     568                      /* @@ Are we leaking df->name here?  */
     569                      df->name = 0;
     570                      free_dep (df);
     571                      continue;
     572                    }
     573                }
     574              dl = dp;
     575              dp = dp->next;
     576            }
     577        }
     578
     579      /* Enter them as files. */
     580      for (d1 = new; d1 != 0; d1 = d1->next)
     581        {
     582          d1->file = lookup_file (d1->name);
     583          if (d1->file == 0)
     584            d1->file = enter_file (d1->name);
     585          else
     586            free (d1->name);
     587          d1->name = 0;
     588          d1->staticpattern = 0;
     589          d1->need_2nd_expansion = 0;
     590        }
     591
     592      /* Add newly parsed deps to f->deps. If this is the last dependency
     593         line and this target has commands then put it in front so the
     594         last dependency line (the one with commands) ends up being the
     595         first. This is important because people expect $< to hold first
     596         prerequisite from the rule with commands. If it is not the last
     597         dependency line or the rule does not have commands then link it
     598         at the end so it appears in makefile order.  */
     599
     600      if (new != 0)
     601        {
     602          if (d->next == 0 && last_dep_has_cmds)
     603            {
     604              struct dep **d_ptr;
     605              for (d_ptr = &new; *d_ptr; d_ptr = &(*d_ptr)->next)
     606                ;
     607
     608              *d_ptr = f->deps;
     609              f->deps = new;
     610            }
    444611          else
    445612            {
    446               /* We are going to do second expansion so initialize file
    447                  variables for the file. */
    448               if (!initialized)
    449                 {
    450                   initialize_file_variables (f, 0);
    451                   initialized = 1;
    452                 }
    453 
    454               set_file_variables (f);
    455 
    456               p = variable_expand_for_file (d->name, f);
    457             }
    458 
    459           /* Parse the dependencies.  */
    460           new = (struct dep *)
    461             multi_glob (
    462               parse_file_seq (&p, '|', sizeof (struct dep), 1),
    463               sizeof (struct dep));
    464 
    465           if (*p)
    466             {
    467               /* Files that follow '|' are special prerequisites that
    468                  need only exist in order to satisfy the dependency.
    469                  Their modification times are irrelevant.  */
    470613              struct dep **d_ptr;
    471 
    472               for (d_ptr = &new; *d_ptr; d_ptr = &(*d_ptr)->next)
     614              for (d_ptr = &f->deps; *d_ptr; d_ptr = &(*d_ptr)->next)
    473615                ;
    474               ++p;
    475 
    476               *d_ptr = (struct dep *)
    477                 multi_glob (
    478                   parse_file_seq (&p, '\0', sizeof (struct dep), 1),
    479                   sizeof (struct dep));
    480 
    481               for (d1 = *d_ptr; d1 != 0; d1 = d1->next)
    482                 d1->ignore_mtime = 1;
    483             }
    484 
    485           /* Enter them as files. */
    486           for (d1 = new; d1 != 0; d1 = d1->next)
    487             {
    488               d1->file = lookup_file (d1->name);
    489               if (d1->file == 0)
    490                 d1->file = enter_file (d1->name);
    491               else
    492                 free (d1->name);
    493               d1->name = 0;
    494               d1->need_2nd_expansion = 0;
    495             }
    496 
    497           /* Add newly parsed deps to f->deps. If this is the last
    498              dependency line and this target has commands then put
    499              it in front so the last dependency line (the one with
    500              commands) ends up being the first. This is important
    501              because people expect $< to hold first prerequisite
    502              from the rule with commands. If it is not the last
    503              dependency line or the rule does not have commands
    504              then link it at the end so it appears in makefile
    505              order.  */
    506 
    507           if (new != 0)
    508             {
    509               if (d->next == 0 && last_dep_has_cmds)
    510                 {
    511                   struct dep **d_ptr;
    512                   for (d_ptr = &new; *d_ptr; d_ptr = &(*d_ptr)->next)
    513                     ;
    514 
    515                   *d_ptr = f->deps;
    516                   f->deps = new;
    517                 }
    518               else
    519                 {
    520                   struct dep **d_ptr;
    521                   for (d_ptr = &f->deps; *d_ptr; d_ptr = &(*d_ptr)->next)
    522                     ;
    523 
    524                   *d_ptr = new;
    525                 }
     616
     617              *d_ptr = new;
    526618            }
    527619        }
    528620    }
    529621
    530   free_ns_chain ((struct nameseq *) old);
     622  free_dep_chain (old);
    531623}
    532624
     
    646738    }
    647739
    648   f = lookup_file (".POSIX");
    649   if (f != 0 && f->is_target)
    650     posix_pedantic = 1;
    651 
    652740  f = lookup_file (".NOTPARALLEL");
    653741  if (f != 0 && f->is_target)
    654742    not_parallel = 1;
     743
     744#ifndef NO_MINUS_C_MINUS_O
     745  /* If .POSIX was defined, remove OUTPUT_OPTION to comply.  */
     746  /* This needs more work: what if the user sets this in the makefile?
     747  if (posix_pedantic)
     748    define_variable (STRING_SIZE_TUPLE("OUTPUT_OPTION"), "", o_default, 1);
     749  */
     750#endif
    655751
    656752  /* Remember that we've done this. */
  • vendor/gnumake/current/filedef.h

    r280 r501  
    11/* Definition of target file data structures for GNU Make.
    2 Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1997,
    3 2002 Free Software Foundation, Inc.
     2Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
     31998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software
     4Foundation, Inc.
    45This file is part of GNU Make.
    56
    6 GNU Make is free software; you can redistribute it and/or modify
    7 it under the terms of the GNU General Public License as published by
    8 the Free Software Foundation; either version 2, or (at your option)
    9 any later version.
    10 
    11 GNU Make is distributed in the hope that it will be useful,
    12 but WITHOUT ANY WARRANTY; without even the implied warranty of
    13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    14 GNU General Public License for more details.
    15 
    16 You should have received a copy of the GNU General Public License
    17 along with GNU Make; see the file COPYING.  If not, write to
    18 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    19 Boston, MA 02111-1307, USA.  */
     7GNU Make is free software; you can redistribute it and/or modify it under the
     8terms of the GNU General Public License as published by the Free Software
     9Foundation; either version 2, or (at your option) any later version.
     10
     11GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     12WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     13A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     14
     15You should have received a copy of the GNU General Public License along with
     16GNU Make; see the file COPYING.  If not, write to the Free Software
     17Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
    2018
    2119
     
    4341                                   used when there are multiple double-colon
    4442                                   entries for the same file.  */
     43    struct file *last;          /* Last entry for the same file name.  */
    4544
    4645    /* File that this file was renamed to.  After any time that a
     
    8584    unsigned int cmd_target:1;  /* Nonzero if file was given on cmd line.  */
    8685    unsigned int phony:1;       /* Nonzero if this is a phony file
    87                                    i.e., a dependency of .PHONY.  */
     86                                   i.e., a prerequisite of .PHONY.  */
    8887    unsigned int intermediate:1;/* Nonzero if this is an intermediate file.  */
    89     /* Nonzero, for an intermediate file,
    90        means remove_intermediates should not delete it.  */
    91     unsigned int secondary:1;
     88    unsigned int secondary:1;   /* Nonzero means remove_intermediates should
     89                                   not delete it.  */
    9290    unsigned int dontcare:1;    /* Nonzero if no complaint is to be made if
    9391                                   this target cannot be remade.  */
     
    9593    unsigned int pat_searched:1;/* Nonzero if we already searched for
    9694                                   pattern-specific variables.  */
    97     unsigned int considered:1;  /* equal to `considered' if file has been
     95    unsigned int considered:1;  /* equal to 'considered' if file has been
    9896                                   considered on current scan of goal chain */
    9997  };
     
    106104extern struct file *lookup_file PARAMS ((char *name));
    107105extern struct file *enter_file PARAMS ((char *name));
     106extern struct dep *parse_prereqs PARAMS ((char *prereqs));
    108107extern void remove_intermediates PARAMS ((int sig));
    109108extern void snap_deps PARAMS ((void));
  • vendor/gnumake/current/function.c

    r280 r501  
    11/* Builtin function expansion for GNU Make.
    2 Copyright (C) 1988, 1989, 1991-1997, 1999, 2002 Free Software Foundation, Inc.
     2Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
     31998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software
     4Foundation, Inc.
    35This file is part of GNU Make.
    46
    5 GNU Make is free software; you can redistribute it and/or modify
    6 it under the terms of the GNU General Public License as published by
    7 the Free Software Foundation; either version 2, or (at your option)
    8 any later version.
    9 
    10 GNU Make is distributed in the hope that it will be useful,
    11 but WITHOUT ANY WARRANTY; without even the implied warranty of
    12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    13 GNU General Public License for more details.
    14 
    15 You should have received a copy of the GNU General Public License
    16 along with GNU Make; see the file COPYING.  If not, write to
    17 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    18 Boston, MA 02111-1307, USA.  */
     7GNU Make is free software; you can redistribute it and/or modify it under the
     8terms of the GNU General Public License as published by the Free Software
     9Foundation; either version 2, or (at your option) any later version.
     10
     11GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     12WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     13A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     14
     15You should have received a copy of the GNU General Public License along with
     16GNU Make; see the file COPYING.  If not, write to the Free Software
     17Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
    1918
    2019#include "make.h"
     
    497496}
    498497
     498static char *
     499func_flavor (char *o, char **argv, const char *funcname UNUSED)
     500{
     501  register struct variable *v = lookup_variable (argv[0], strlen (argv[0]));
     502
     503  if (v == 0)
     504    o = variable_buffer_output (o, "undefined", 9);
     505  else
     506    if (v->recursive)
     507      o = variable_buffer_output (o, "recursive", 9);
     508    else
     509      o = variable_buffer_output (o, "simple", 6);
     510
     511  return o;
     512}
     513
    499514#ifdef VMS
    500515# define IS_PATHSEP(c) ((c) == ']')
     
    736751
    737752  if (s <= end || end - beg < 0)
    738     fatal (reading_file, "%s: '%s'", message, beg);
     753    fatal (*expanding_var, "%s: '%s'", message, beg);
    739754}
    740755
     
    753768
    754769  if (i == 0)
    755     fatal (reading_file, _("first argument to `word' function must be greater than 0"));
     770    fatal (*expanding_var,
     771           _("first argument to `word' function must be greater than 0"));
    756772
    757773
     
    780796  start = atoi (argv[0]);
    781797  if (start < 1)
    782     fatal (reading_file,
     798    fatal (*expanding_var,
    783799           "invalid first argument to `wordlist' function: `%d'", start);
    784800
     
    11041120    case 'i':
    11051121      printf ("%s\n", msg);
     1122      fflush(stdout);
    11061123      break;
    11071124
    11081125    default:
    1109       fatal (reading_file, "Internal error: func_error: '%s'", funcname);
     1126      fatal (*expanding_var, "Internal error: func_error: '%s'", funcname);
    11101127  }
    11111128
     
    12211238}
    12221239
     1240/*
     1241  $(or condition1[,condition2[,condition3[...]]])
     1242
     1243  A CONDITION is false iff it evaluates to an empty string.  White
     1244  space before and after CONDITION are stripped before evaluation.
     1245
     1246  CONDITION1 is evaluated.  If it's true, then this is the result of
     1247  expansion.  If it's false, CONDITION2 is evaluated, and so on.  If none of
     1248  the conditions are true, the expansion is the empty string.
     1249
     1250  Once a CONDITION is true no further conditions are evaluated
     1251  (short-circuiting).
     1252*/
     1253
     1254static char *
     1255func_or (char *o, char **argv, const char *funcname UNUSED)
     1256{
     1257  for ( ; *argv ; ++argv)
     1258    {
     1259      const char *begp = *argv;
     1260      const char *endp = begp + strlen (*argv) - 1;
     1261      char *expansion;
     1262      int result = 0;
     1263
     1264      /* Find the result of the condition: if it's false keep going.  */
     1265
     1266      strip_whitespace (&begp, &endp);
     1267
     1268      if (begp > endp)
     1269        continue;
     1270
     1271      expansion = expand_argument (begp, endp+1);
     1272      result = strlen (expansion);
     1273
     1274      /* If the result is false keep going.  */
     1275      if (!result)
     1276        {
     1277          free (expansion);
     1278          continue;
     1279        }
     1280
     1281      /* It's true!  Keep this result and return.  */
     1282      o = variable_buffer_output (o, expansion, result);
     1283      free (expansion);
     1284      break;
     1285    }
     1286
     1287  return o;
     1288}
     1289
     1290/*
     1291  $(and condition1[,condition2[,condition3[...]]])
     1292
     1293  A CONDITION is false iff it evaluates to an empty string.  White
     1294  space before and after CONDITION are stripped before evaluation.
     1295
     1296  CONDITION1 is evaluated.  If it's false, then this is the result of
     1297  expansion.  If it's true, CONDITION2 is evaluated, and so on.  If all of
     1298  the conditions are true, the expansion is the result of the last condition.
     1299
     1300  Once a CONDITION is false no further conditions are evaluated
     1301  (short-circuiting).
     1302*/
     1303
     1304static char *
     1305func_and (char *o, char **argv, const char *funcname UNUSED)
     1306{
     1307  char *expansion;
     1308  int result;
     1309
     1310  while (1)
     1311    {
     1312      const char *begp = *argv;
     1313      const char *endp = begp + strlen (*argv) - 1;
     1314
     1315      /* An empty condition is always false.  */
     1316      strip_whitespace (&begp, &endp);
     1317      if (begp > endp)
     1318        return o;
     1319
     1320      expansion = expand_argument (begp, endp+1);
     1321      result = strlen (expansion);
     1322
     1323      /* If the result is false, stop here: we're done.  */
     1324      if (!result)
     1325        break;
     1326
     1327      /* Otherwise the result is true.  If this is the last one, keep this
     1328         result and quit.  Otherwise go on to the next one!  */
     1329
     1330      if (*(++argv))
     1331        free (expansion);
     1332      else
     1333        {
     1334          o = variable_buffer_output (o, expansion, result);
     1335          break;
     1336        }
     1337    }
     1338
     1339  free (expansion);
     1340
     1341  return o;
     1342}
     1343
    12231344static char *
    12241345func_wildcard (char *o, char **argv, const char *funcname UNUSED)
     
    12771398  \r  is replaced on UNIX as well. Is this desirable?
    12781399 */
    1279 void
    1280 fold_newlines (char *buffer, int *length)
     1400static void
     1401fold_newlines (char *buffer, unsigned int *length)
    12811402{
    12821403  char *dst = buffer;
     
    13371458                      TRUE,
    13381459                      DUPLICATE_SAME_ACCESS) == FALSE) {
    1339     fatal (NILF, _("create_child_process: DuplicateHandle(In) failed (e=%d)\n"),
     1460    fatal (NILF, _("create_child_process: DuplicateHandle(In) failed (e=%ld)\n"),
    13401461           GetLastError());
    13411462
     
    13481469                      TRUE,
    13491470                      DUPLICATE_SAME_ACCESS) == FALSE) {
    1350     fatal (NILF, _("create_child_process: DuplicateHandle(Err) failed (e=%d)\n"),
     1471    fatal (NILF, _("create_child_process: DuplicateHandle(Err) failed (e=%ld)\n"),
    13511472           GetLastError());
    13521473  }
    13531474
    13541475  if (!CreatePipe(&hChildOutRd, &hChildOutWr, &saAttr, 0))
    1355     fatal (NILF, _("CreatePipe() failed (e=%d)\n"), GetLastError());
     1476    fatal (NILF, _("CreatePipe() failed (e=%ld)\n"), GetLastError());
    13561477
    13571478  hProcess = process_init_fd(hIn, hChildOutWr, hErr);
     
    14651586{
    14661587  char* batch_filename = NULL;
    1467   unsigned int i;
    14681588
    14691589#ifdef __MSDOS__
     
    14901610     to put it in the environment.  This is even more confusing when
    14911611     var was not explicitly exported, but just appeared in the
    1492      calling environment.  */
     1612     calling environment.
     1613
     1614  envp = target_environment (NILF);
     1615  */
    14931616
    14941617  envp = environ;
     
    15561679    {
    15571680      /* We are the parent.  */
    1558 
    15591681      char *buffer;
    1560       unsigned int maxlen;
     1682      unsigned int maxlen, i;
    15611683      int cc;
    15621684
     
    16211743      if (shell_function_completed == -1)
    16221744        {
    1623           /* This most likely means that the execvp failed,
    1624              so we should just write out the error message
    1625              that came in over the pipe from the child.  */
     1745          /* This likely means that the execvp failed, so we should just
     1746             write the error message in the pipe from the child.  */
    16261747          fputs (buffer, stderr);
    16271748          fflush (stderr);
     
    16291750      else
    16301751        {
    1631           /* The child finished normally.  Replace all
    1632              newlines in its output with spaces, and put
    1633              that in the variable output buffer.  */
     1752          /* The child finished normally.  Replace all newlines in its output
     1753             with spaces, and put that in the variable output buffer.  */
    16341754          fold_newlines (buffer, &i);
    16351755          o = variable_buffer_output (o, buffer, i);
     
    16631783  BPTR child_stdout;
    16641784  char tmp_output[FILENAME_MAX];
    1665   unsigned int maxlen = 200;
    1666   int cc, i;
     1785  unsigned int maxlen = 200, i;
     1786  int cc;
    16671787  char * buffer, * ptr;
    16681788  char ** aptr;
     
    19472067  { STRING_SIZE_TUPLE("findstring"),    2,  2,  1,  func_findstring},
    19482068  { STRING_SIZE_TUPLE("firstword"),     0,  1,  1,  func_firstword},
     2069  { STRING_SIZE_TUPLE("flavor"),        0,  1,  1,  func_flavor},
    19492070  { STRING_SIZE_TUPLE("join"),          2,  2,  1,  func_join},
    19502071  { STRING_SIZE_TUPLE("lastword"),      0,  1,  1,  func_lastword},
     
    19652086  { STRING_SIZE_TUPLE("warning"),       0,  1,  1,  func_error},
    19662087  { STRING_SIZE_TUPLE("if"),            2,  3,  0,  func_if},
     2088  { STRING_SIZE_TUPLE("or"),            1,  0,  0,  func_or},
     2089  { STRING_SIZE_TUPLE("and"),           1,  0,  0,  func_and},
    19672090  { STRING_SIZE_TUPLE("value"),         0,  1,  1,  func_value},
    19682091  { STRING_SIZE_TUPLE("eval"),          0,  1,  1,  func_eval},
     
    19842107{
    19852108  if (argc < (int)entry_p->minimum_args)
    1986     fatal (reading_file,
    1987            _("Insufficient number of arguments (%d) to function `%s'"),
     2109    fatal (*expanding_var,
     2110           _("insufficient number of arguments (%d) to function `%s'"),
    19882111           argc, entry_p->name);
    19892112
     
    19962119
    19972120  if (!entry_p->func_ptr)
    1998     fatal (reading_file, _("Unimplemented on this platform: function `%s'"),
    1999            entry_p->name);
     2121    fatal (*expanding_var,
     2122           _("unimplemented on this platform: function `%s'"), entry_p->name);
    20002123
    20012124  return entry_p->func_ptr (o, argv, entry_p->name);
     
    20462169
    20472170  if (count >= 0)
    2048     fatal (reading_file,
     2171    fatal (*expanding_var,
    20492172           _("unterminated call to function `%s': missing `%c'"),
    20502173           entry_p->name, closeparen);
  • vendor/gnumake/current/getloadavg.c

    r280 r501  
    11/* Get the system load averages.
    2    Copyright (C) 1985, 86, 87, 88, 89, 91, 92, 93, 1994, 1995, 1997
    3         Free Software Foundation, Inc.
    4 
    5    This program is free software; you can redistribute it and/or modify
    6    it under the terms of the GNU General Public License as published by
    7    the Free Software Foundation; either version 2, or (at your option)
    8    any later version.
    9 
    10    This program is distributed in the hope that it will be useful,
    11    but WITHOUT ANY WARRANTY; without even the implied warranty of
    12    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    13    GNU General Public License for more details.
    14 
    15    You should have received a copy of the GNU General Public License
    16    along with this program; if not, write to the Free Software
    17    Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
    18   USA.  */
     2Copyright (C) 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994,
     31995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free
     4Software Foundation, Inc.
     5
     6This program is free software; you can redistribute it and/or modify
     7it under the terms of the GNU General Public License as published by
     8the Free Software Foundation; either version 2, or (at your option)
     9any later version.
     10
     11This program is distributed in the hope that it will be useful,
     12but WITHOUT ANY WARRANTY; without even the implied warranty of
     13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     14GNU General Public License for more details.
     15
     16You should have received a copy of the GNU General Public License along with
     17this program; see the file COPYING.  If not, write to the Free Software
     18Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
    1919
    2020/* Compile-time symbols that this file uses:
  • vendor/gnumake/current/getopt.c

    r54 r501  
    11/* Getopt for GNU.
    2    NOTE: getopt is now part of the C library, so if you don't know what
    3    "Keep this file name-space clean" means, talk to [email protected]
    4    before changing it!
    5 
    6    Copyright (C) 1987, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98
    7         Free Software Foundation, Inc.
    8 
    9    NOTE: The canonical source of this file is maintained with the GNU C Library.
    10    Bugs can be reported to [email protected].
    11 
    12    This program is free software; you can redistribute it and/or modify it
    13    under the terms of the GNU General Public License as published by the
    14    Free Software Foundation; either version 2, or (at your option) any
    15    later version.
    16 
    17    This program is distributed in the hope that it will be useful,
    18    but WITHOUT ANY WARRANTY; without even the implied warranty of
    19    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    20    GNU General Public License for more details.
    21 
    22    You should have received a copy of the GNU General Public License
    23    along with this program; if not, write to the Free Software
    24    Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
    25    USA.  */
    26 
     2NOTE: getopt is now part of the C library, so if you don't know what
     3"Keep this file name-space clean" means, talk to [email protected]
     4before changing it!
     5
     6Copyright (C) 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996,
     71997, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software
     8Foundation, Inc.
     9
     10NOTE: The canonical source of this file is maintained with the GNU C Library.
     11Bugs can be reported to [email protected].
     12
     13This program is free software; you can redistribute it and/or modify it
     14under the terms of the GNU General Public License as published by the
     15Free Software Foundation; either version 2, or (at your option) any
     16later version.
     17
     18This program is distributed in the hope that it will be useful,
     19but WITHOUT ANY WARRANTY; without even the implied warranty of
     20MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     21GNU General Public License for more details.
     22
     23You should have received a copy of the GNU General Public License along with
     24this program; see the file COPYING.  If not, write to the Free Software
     25Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
    2726
    2827/* This tells Alpha OSF/1 not to define a getopt prototype in <stdio.h>.
  • vendor/gnumake/current/getopt.h

    r54 r501  
    11/* Declarations for getopt.
    2    Copyright (C) 1989,90,91,92,93,94,96,97 Free Software Foundation, Inc.
     2Copyright (C) 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
     31999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
    34
    4    NOTE: The canonical source of this file is maintained with the GNU C Library.
    5    Bugs can be reported to [email protected].
     5NOTE: The canonical source of this file is maintained with the GNU C Library.
     6Bugs can be reported to [email protected].
    67
    7    This program is free software; you can redistribute it and/or modify it
    8    under the terms of the GNU General Public License as published by the
    9    Free Software Foundation; either version 2, or (at your option) any
    10    later version.
     8This program is free software; you can redistribute it and/or modify it
     9under the terms of the GNU General Public License as published by the
     10Free Software Foundation; either version 2, or (at your option) any
     11later version.
    1112
    12    This program is distributed in the hope that it will be useful,
    13    but WITHOUT ANY WARRANTY; without even the implied warranty of
    14    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    15    GNU General Public License for more details.
     13This program is distributed in the hope that it will be useful,
     14but WITHOUT ANY WARRANTY; without even the implied warranty of
     15MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     16GNU General Public License for more details.
    1617
    17    You should have received a copy of the GNU General Public License
    18    along with this program; if not, write to the Free Software
    19    Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
    20    USA.  */
     18You should have received a copy of the GNU General Public License along with
     19this program; see the file COPYING.  If not, write to the Free Software
     20Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
    2121
    2222#ifndef _GETOPT_H
  • vendor/gnumake/current/getopt1.c

    r54 r501  
    11/* getopt_long and getopt_long_only entry points for GNU getopt.
    2    Copyright (C) 1987,88,89,90,91,92,93,94,96,97,98
    3      Free Software Foundation, Inc.
     2Copyright (C) 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1996, 1997,
     31998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software
     4Foundation, Inc.
    45
    5    NOTE: The canonical source of this file is maintained with the GNU C Library.
    6    Bugs can be reported to [email protected].
     6NOTE: The canonical source of this file is maintained with the GNU C Library.
     7Bugs can be reported to [email protected].
    78
    8    This program is free software; you can redistribute it and/or modify it
    9    under the terms of the GNU General Public License as published by the
    10    Free Software Foundation; either version 2, or (at your option) any
    11    later version.
     9This program is free software; you can redistribute it and/or modify it
     10under the terms of the GNU General Public License as published by the
     11Free Software Foundation; either version 2, or (at your option) any
     12later version.
    1213
    13    This program is distributed in the hope that it will be useful,
    14    but WITHOUT ANY WARRANTY; without even the implied warranty of
    15    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    16    GNU General Public License for more details.
     14This program is distributed in the hope that it will be useful,
     15but WITHOUT ANY WARRANTY; without even the implied warranty of
     16MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     17GNU General Public License for more details.
    1718
    18    You should have received a copy of the GNU General Public License
    19    along with this program; if not, write to the Free Software
    20    Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
    21    USA.  */
     19You should have received a copy of the GNU General Public License along with
     20this program; see the file COPYING.  If not, write to the Free Software
     21Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
    2222
    2323
  • vendor/gnumake/current/gettext.h

    r54 r501  
    11/* Convenience header for conditional use of GNU <libintl.h>.
    2    Copyright (C) 1995-1998, 2000-2002 Free Software Foundation, Inc.
     2Copyright (C) 1995, 1996, 1997, 1998, 2000, 2001, 2002, 2003, 2004, 2005,
     32006 Free Software Foundation, Inc.
     4This file is part of GNU Make.
    35
    4    This program is free software; you can redistribute it and/or modify it
    5    under the terms of the GNU Library General Public License as published
    6    by the Free Software Foundation; either version 2, or (at your option)
    7    any later version.
     6GNU Make is free software; you can redistribute it and/or modify it under the
     7terms of the GNU General Public License as published by the Free Software
     8Foundation; either version 2, or (at your option) any later version.
    89
    9    This program is distributed in the hope that it will be useful,
    10    but WITHOUT ANY WARRANTY; without even the implied warranty of
    11    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    12    Library General Public License for more details.
     10GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     11WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     12A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
    1313
    14    You should have received a copy of the GNU Library General Public
    15    License along with this program; if not, write to the Free Software
    16    Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
    17    USA.  */
     14You should have received a copy of the GNU General Public License along with
     15GNU Make; see the file COPYING.  If not, write to the Free Software
     16Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
    1817
    1918#ifndef _LIBGETTEXT_H
  • vendor/gnumake/current/glob/ChangeLog

    r280 r501  
     12006-02-24  Eli Zaretskii  <[email protected]>
     2
     3        * glob.c (my_malloc) [WINDOWS32]: Provide a full ISO C prototype,
     4        to avoid compiler warnings.
     5
     62005-06-25  Paul D. Smith  <[email protected]>
     7
     8        * fnmatch.h, glob.h [WINDOWS32]: Fix ifdefs in headers.
     9        Fixes Savannah bug #13477.
     10
    1112005-03-11  Paul D. Smith  <[email protected]>
    212
     
    146156        only for ?s, not for *s.  Fix from Chet Ramey.
    147157
     158
     159
     160Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
     1611998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software
     162Foundation, Inc.
     163This file is part of GNU Make.
     164
     165GNU Make is free software; you can redistribute it and/or modify it under the
     166terms of the GNU General Public License as published by the Free Software
     167Foundation; either version 2, or (at your option) any later version.
     168
     169GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     170WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     171A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     172
     173You should have received a copy of the GNU General Public License along with
     174GNU Make; see the file COPYING.  If not, write to the Free Software
     175Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  • vendor/gnumake/current/glob/Makefile.am

    r53 r501  
    11# -*-Makefile-*-, or close enough
     2# Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
     3# 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
     4# This file is part of GNU Make.
     5#
     6# GNU Make is free software; you can redistribute it and/or modify it under the
     7# terms of the GNU General Public License as published by the Free Software
     8# Foundation; either version 2, or (at your option) any later version.
     9#
     10# GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     11# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     12# A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     13#
     14# You should have received a copy of the GNU General Public License along with
     15# GNU Make; see the file COPYING.  If not, write to the Free Software
     16# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
    217
    318AUTOMAKE_OPTIONS =      foreign
  • vendor/gnumake/current/glob/Makefile.ami

    r53 r501  
    1 # Makefile for standalone distribution of libglob.a (fnmatch, glob).
    2 
    3 # Copyright (C) 1991, 92, 93, 94, 95, 97, 98 Free Software Foundation, Inc.
    4 # This file is part of the GNU C Library.
    5 
    6 # This library is free software; you can redistribute it and/or
    7 # modify it under the terms of the GNU Library General Public License
    8 # as published by the Free Software Foundation; either version 2 of
    9 # the License, or (at your option) any later version.
    10 
    11 # This library is distributed in the hope that it will be useful,
    12 # but WITHOUT ANY WARRANTY; without even the implied warranty of
    13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    14 # Library General Public License for more details.
    15 
    16 # You should have received a copy of the GNU Library General Public
    17 # License along with this library; see the file COPYING.LIB.  If
    18 # not, write to the Free Software Foundation, Inc.,
    19 # 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
     1# Makefile for standalone libglob.a (fnmatch, glob).             -*-Makefile-*-
     2# Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
     3# 2005, 2006 Free Software Foundation, Inc.
     4# This file is part of GNU Make.
     5#
     6# GNU Make is free software; you can redistribute it and/or modify it under the
     7# terms of the GNU General Public License as published by the Free Software
     8# Foundation; either version 2, or (at your option) any later version.
     9#
     10# GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     11# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     12# A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     13#
     14# You should have received a copy of the GNU General Public License along with
     15# GNU Make; see the file COPYING.  If not, write to the Free Software
     16# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
    2017
    2118# Ultrix 2.2 make doesn't expand the value of VPATH.
  • vendor/gnumake/current/glob/Makefile.in

    r152 r501  
    1 # Makefile.in generated by automake 1.8.2 from Makefile.am.
     1# Makefile.in generated by automake 1.9.6 from Makefile.am.
    22# @configure_input@
    33
    44# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
    5 # 2003, 2004  Free Software Foundation, Inc.
     5# 2003, 2004, 2005  Free Software Foundation, Inc.
    66# This Makefile.in is free software; the Free Software Foundation
    77# gives unlimited permission to copy and/or distribute it,
     
    1616
    1717# -*-Makefile-*-, or close enough
    18 
    19 SOURCES = $(libglob_a_SOURCES)
     18# Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
     19# 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
     20# This file is part of GNU Make.
     21#
     22# GNU Make is free software; you can redistribute it and/or modify it under the
     23# terms of the GNU General Public License as published by the Free Software
     24# Foundation; either version 2, or (at your option) any later version.
     25#
     26# GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     27# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     28# A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     29#
     30# You should have received a copy of the GNU General Public License along with
     31# GNU Make; see the file COPYING.  If not, write to the Free Software
     32# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
    2033
    2134srcdir = @srcdir@
     
    3952PRE_UNINSTALL = :
    4053POST_UNINSTALL = :
     54build_triplet = @build@
    4155host_triplet = @host@
    4256subdir = glob
     
    5670CONFIG_HEADER = $(top_builddir)/config.h
    5771CONFIG_CLEAN_FILES =
     72LIBRARIES = $(noinst_LIBRARIES)
    5873ARFLAGS = cru
    59 LIBRARIES = $(noinst_LIBRARIES)
    6074libglob_a_AR = $(AR) $(ARFLAGS)
    6175libglob_a_LIBADD =
     
    6579depcomp = $(SHELL) $(top_srcdir)/config/depcomp
    6680am__depfiles_maybe = depfiles
    67 @AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/fnmatch.Po ./$(DEPDIR)/glob.Po
    6881COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
    6982        $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
     
    144157USE_NLS = @USE_NLS@
    145158VERSION = @VERSION@
     159WINDOWSENV_FALSE = @WINDOWSENV_FALSE@
     160WINDOWSENV_TRUE = @WINDOWSENV_TRUE@
    146161XGETTEXT = @XGETTEXT@
    147162ac_ct_CC = @ac_ct_CC@
     
    153168am__leading_dot = @am__leading_dot@
    154169am__quote = @am__quote@
     170am__tar = @am__tar@
     171am__untar = @am__untar@
    155172bindir = @bindir@
    156173build = @build@
     
    243260@am__fastdepCC_TRUE@    then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
    244261@AMDEP_TRUE@@am__fastdepCC_FALSE@       source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
    245 @AMDEP_TRUE@@am__fastdepCC_FALSE@       depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
    246 @AMDEP_TRUE@@am__fastdepCC_FALSE@       $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     262@AMDEP_TRUE@@am__fastdepCC_FALSE@       DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
    247263@am__fastdepCC_FALSE@   $(COMPILE) -c $<
    248264
     
    251267@am__fastdepCC_TRUE@    then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
    252268@AMDEP_TRUE@@am__fastdepCC_FALSE@       source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
    253 @AMDEP_TRUE@@am__fastdepCC_FALSE@       depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
    254 @AMDEP_TRUE@@am__fastdepCC_FALSE@       $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     269@AMDEP_TRUE@@am__fastdepCC_FALSE@       DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
    255270@am__fastdepCC_FALSE@   $(COMPILE) -c `$(CYGPATH_W) '$<'`
    256271uninstall-info-am:
     
    276291          $(AWK) '    { files[$$0] = 1; } \
    277292               END { for (i in files) print i; }'`; \
    278         test -z "$(ETAGS_ARGS)$$tags$$unique" \
    279           || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
    280              $$tags $$unique
     293        if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
     294          test -n "$$unique" || unique=$$empty_fix; \
     295          $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
     296            $$tags $$unique; \
     297        fi
    281298ctags: CTAGS
    282299CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
     
    352369
    353370distclean-generic:
    354         -rm -f $(CONFIG_CLEAN_FILES)
     371        -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
    355372
    356373maintainer-clean-generic:
  • vendor/gnumake/current/glob/SMakefile

    r53 r501  
    11# Makefile for standalone distribution of libglob.a (fnmatch, glob).
    2 
    3 # Copyright (C) 1991, 92, 93, 94, 95, 97, 98 Free Software Foundation, Inc.
    4 # This file is part of the GNU C Library.
    5 
    6 # This library is free software; you can redistribute it and/or
    7 # modify it under the terms of the GNU Library General Public License
    8 # as published by the Free Software Foundation; either version 2 of
    9 # the License, or (at your option) any later version.
    10 
    11 # This library is distributed in the hope that it will be useful,
    12 # but WITHOUT ANY WARRANTY; without even the implied warranty of
    13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    14 # Library General Public License for more details.
    15 
    16 # You should have received a copy of the GNU Library General Public
    17 # License along with this library; see the file COPYING.LIB.  If
    18 # not, write to the Free Software Foundation, Inc.,
    19 # 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
     2# Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
     3# 2005, 2006 Free Software Foundation, Inc.
     4# This file is part of GNU Make.
     5#
     6# GNU Make is free software; you can redistribute it and/or modify it under the
     7# terms of the GNU General Public License as published by the Free Software
     8# Foundation; either version 2, or (at your option) any later version.
     9#
     10# GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     11# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     12# A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     13#
     14# You should have received a copy of the GNU General Public License along with
     15# GNU Make; see the file COPYING.  If not, write to the Free Software
     16# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
    2017
    2118# Ultrix 2.2 make doesn't expand the value of VPATH.
  • vendor/gnumake/current/glob/configure.bat

    r53 r501  
    11@echo off
     2rem Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
     3rem 2004, 2005, 2006 Free Software Foundation, Inc.
     4rem This file is part of GNU Make.
     5
     6rem GNU Make is free software; you can redistribute it and/or modify it under
     7rem the terms of the GNU General Public License as published by the Free
     8rem Software Foundation; either version 2, or (at your option) any later
     9rem version.
     10
     11rem GNU Make is distributed in the hope that it will be useful, but WITHOUT
     12rem ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
     13rem FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
     14rem more details.
     15
     16rem You should have received a copy of the GNU General Public License along
     17rem with GNU Make; see the file COPYING.  If not, write to the Free Software
     18rem Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
     19
    220echo Configuring glob for DJGPP
    321rem This batch file assumes a unix-type "sed" program
  • vendor/gnumake/current/glob/fnmatch.c

    r53 r501  
    11/* Copyright (C) 1991, 92, 93, 96, 97, 98, 99 Free Software Foundation, Inc.
    2    This file is part of the GNU C Library.
    3 
    4    This library is free software; you can redistribute it and/or
    5    modify it under the terms of the GNU Library General Public License as
    6    published by the Free Software Foundation; either version 2 of the
    7    License, or (at your option) any later version.
    8 
    9    This library is distributed in the hope that it will be useful,
    10    but WITHOUT ANY WARRANTY; without even the implied warranty of
    11    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    12    Library General Public License for more details.
    13 
    14    You should have received a copy of the GNU Library General Public
    15    License along with this library; see the file COPYING.LIB.  If not,
    16    write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    17    Boston, MA 02111-1307, USA.  */
     2This file is part of the GNU C Library.
     3
     4This library is free software; you can redistribute it and/or
     5modify it under the terms of the GNU Library General Public License as
     6published by the Free Software Foundation; either version 2 of the
     7License, or (at your option) any later version.
     8
     9This library is distributed in the hope that it will be useful,
     10but WITHOUT ANY WARRANTY; without even the implied warranty of
     11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     12Library General Public License for more details.
     13
     14You should have received a copy of the GNU Library General Public License
     15along with this library; see the file COPYING.LIB.  If not, write to the Free
     16Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
     17USA.  */
    1818
    1919#if HAVE_CONFIG_H
  • vendor/gnumake/current/glob/fnmatch.h

    r53 r501  
    11/* Copyright (C) 1991, 92, 93, 96, 97, 98, 99 Free Software Foundation, Inc.
    2    This file is part of the GNU C Library.
     2This file is part of the GNU C Library.
    33
    4    The GNU C Library is free software; you can redistribute it and/or
    5    modify it under the terms of the GNU Library General Public License as
    6    published by the Free Software Foundation; either version 2 of the
    7    License, or (at your option) any later version.
     4The GNU C Library is free software; you can redistribute it and/or
     5modify it under the terms of the GNU Library General Public License as
     6published by the Free Software Foundation; either version 2 of the
     7License, or (at your option) any later version.
    88
    9    The GNU C Library is distributed in the hope that it will be useful,
    10    but WITHOUT ANY WARRANTY; without even the implied warranty of
    11    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    12    Library General Public License for more details.
     9The GNU C Library is distributed in the hope that it will be useful,
     10but WITHOUT ANY WARRANTY; without even the implied warranty of
     11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     12Library General Public License for more details.
    1313
    14    You should have received a copy of the GNU Library General Public
    15    License along with the GNU C Library; see the file COPYING.LIB.  If not,
    16    write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    17    Boston, MA 02111-1307, USA.  */
     14You should have received a copy of the GNU Library General Public License
     15along with this library; see the file COPYING.LIB.  If not, write to the Free
     16Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
     17USA.  */
    1818
    1919#ifndef _FNMATCH_H
     
    2525
    2626#if defined __cplusplus || (defined __STDC__ && __STDC__) || defined WINDOWS32
    27 # if !defined __GLIBC__ || !defined __P
     27# if !defined __GLIBC__
    2828#  undef        __P
    2929#  define __P(protos)   protos
     
    3838
    3939#ifndef const
    40 # if (defined __STDC__ && __STDC__) || defined __cplusplus
     40# if (defined __STDC__ && __STDC__) || defined __cplusplus || defined WINDOWS32
    4141#  define __const       const
    4242# else
  • vendor/gnumake/current/glob/glob.c

    r280 r501  
    11/* Copyright (C) 1991,92,93,94,95,96,97,98,99 Free Software Foundation, Inc.
    22
    3    This library is free software; you can redistribute it and/or
    4    modify it under the terms of the GNU Library General Public License as
    5    published by the Free Software Foundation; either version 2 of the
    6    License, or (at your option) any later version.
    7 
    8    This library is distributed in the hope that it will be useful,
    9    but WITHOUT ANY WARRANTY; without even the implied warranty of
    10    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    11    Library General Public License for more details.
    12 
    13    You should have received a copy of the GNU Library General Public
    14    License along with this library; see the file COPYING.LIB.  If not,
    15    write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    16    Boston, MA 02111-1307, USA.  */
     3This library is free software; you can redistribute it and/or
     4modify it under the terms of the GNU Library General Public License as
     5published by the Free Software Foundation; either version 2 of the
     6License, or (at your option) any later version.
     7
     8This library is distributed in the hope that it will be useful,
     9but WITHOUT ANY WARRANTY; without even the implied warranty of
     10MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     11Library General Public License for more details.
     12
     13You should have received a copy of the GNU Library General Public License
     14along with this library; see the file COPYING.LIB.  If not, write to the Free
     15Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
     16USA.  */
    1717
    1818/* AIX requires this to be the first thing in the file.  */
     
    189189#  ifdef WINDOWS32
    190190static void *
     191my_realloc (void *p, unsigned int n)
    191192#  else
    192193static char *
    193 # endif
    194194my_realloc (p, n)
    195195     char *p;
    196196     unsigned int n;
     197# endif
    197198{
    198199  /* These casts are the for sake of the broken Ultrix compiler,
     
    301302static int collated_compare __P ((const __ptr_t, const __ptr_t));
    302303
    303 #ifdef VMS
    304 /* these compilers like prototypes */
    305304#if !defined _LIBC || !defined NO_GLOB_PATTERN_P
    306 int __glob_pattern_p (const char *pattern, int quote);
    307 #endif
     305int __glob_pattern_p __P ((const char *pattern, int quote));
    308306#endif
    309307
  • vendor/gnumake/current/glob/glob.h

    r53 r501  
    11/* Copyright (C) 1991, 92, 95, 96, 97, 98 Free Software Foundation, Inc.
    22
    3    The GNU C Library is free software; you can redistribute it and/or
    4    modify it under the terms of the GNU Library General Public License as
    5    published by the Free Software Foundation; either version 2 of the
    6    License, or (at your option) any later version.
    7 
    8    The GNU C Library is distributed in the hope that it will be useful,
    9    but WITHOUT ANY WARRANTY; without even the implied warranty of
    10    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    11    Library General Public License for more details.
    12 
    13    You should have received a copy of the GNU Library General Public
    14    License along with the GNU C Library; see the file COPYING.LIB.  If not,
    15    write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    16    Boston, MA 02111-1307, USA.  */
     3The GNU C Library is free software; you can redistribute it and/or
     4modify it under the terms of the GNU Library General Public License as
     5published by the Free Software Foundation; either version 2 of the
     6License, or (at your option) any later version.
     7
     8The GNU C Library is distributed in the hope that it will be useful,
     9but WITHOUT ANY WARRANTY; without even the implied warranty of
     10MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     11Library General Public License for more details.
     12
     13You should have received a copy of the GNU Library General Public License
     14along with this library; see the file COPYING.LIB.  If not, write to the Free
     15Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
     16USA.  */
    1717
    1818#ifndef _GLOB_H
     
    2525#undef  __ptr_t
    2626#if defined __cplusplus || (defined __STDC__ && __STDC__) || defined WINDOWS32
    27 # if !defined __GLIBC__ || !defined __P
     27# if !defined __GLIBC__
    2828#  undef __P
    2929#  undef __PMT
  • vendor/gnumake/current/hash.c

    r54 r501  
    33   Written by Greg McGary <[email protected]> <[email protected]>
    44
    5    This program is free software; you can redistribute it and/or modify
    6    it under the terms of the GNU General Public License as published by
    7    the Free Software Foundation; either version 2, or (at your option)
    8    any later version.
    9 
    10    This program is distributed in the hope that it will be useful,
    11    but WITHOUT ANY WARRANTY; without even the implied warranty of
    12    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    13    GNU General Public License for more details.
    14 
    15    You should have received a copy of the GNU General Public License
    16    along with this program; if not, write to the Free Software
    17    Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
    18 */
     5This program is free software; you can redistribute it and/or modify
     6it under the terms of the GNU General Public License as published by
     7the Free Software Foundation; either version 2, or (at your option)
     8any later version.
     9
     10This program is distributed in the hope that it will be useful,
     11but WITHOUT ANY WARRANTY; without even the implied warranty of
     12MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     13GNU General Public License for more details.
     14
     15You should have received a copy of the GNU General Public License along with
     16this program; see the file COPYING.  If not, write to the Free Software
     17Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
    1918
    2019#include "make.h"
     
    127126
    128127void *
    129 hash_insert (struct hash_table *ht, void *item)
     128hash_insert (struct hash_table *ht, const void *item)
    130129{
    131130  void **slot = hash_find_slot (ht, item);
    132   void *old_item = slot ? *slot : 0;
     131  const void *old_item = slot ? *slot : 0;
    133132  hash_insert_at (ht, item, slot);
    134   return ((HASH_VACANT (old_item)) ? 0 : old_item);
    135 }
    136 
    137 void *
    138 hash_insert_at (struct hash_table *ht, void *item, const void *slot)
    139 {
    140   void *old_item = *(void **) slot;
     133  return (void *)((HASH_VACANT (old_item)) ? 0 : old_item);
     134}
     135
     136void *
     137hash_insert_at (struct hash_table *ht, const void *item, const void *slot)
     138{
     139  const void *old_item = *(void **) slot;
    141140  if (HASH_VACANT (old_item))
    142141    {
  • vendor/gnumake/current/hash.h

    r54 r501  
    11/* hash.h -- decls for hash table
    2    Copyright (C) 1995, 1999, 2002 Free Software Foundation, Inc.
    3    Written by Greg McGary <[email protected]> <[email protected]>
    4 
    5    This program is free software; you can redistribute it and/or modify
    6    it under the terms of the GNU General Public License as published by
    7    the Free Software Foundation; either version 2, or (at your option)
    8    any later version.
    9 
    10    This program is distributed in the hope that it will be useful,
    11    but WITHOUT ANY WARRANTY; without even the implied warranty of
    12    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    13    GNU General Public License for more details.
    14 
    15    You should have received a copy of the GNU General Public License
    16    along with this program; if not, write to the Free Software
    17    Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
     2Copyright (C) 1995, 1999, 2002 Free Software Foundation, Inc.
     3Written by Greg McGary <[email protected]> <[email protected]>
     4
     5This program is free software; you can redistribute it and/or modify
     6it under the terms of the GNU General Public License as published by
     7the Free Software Foundation; either version 2, or (at your option)
     8any later version.
     9
     10This program is distributed in the hope that it will be useful,
     11but WITHOUT ANY WARRANTY; without even the implied warranty of
     12MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     13GNU General Public License for more details.
     14
     15You should have received a copy of the GNU General Public License along with
     16this program; see the file COPYING.  If not, write to the Free Software
     17Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. */
    1818
    1919#ifndef _hash_h_
     
    6464void **hash_find_slot __P((struct hash_table *ht, void const *key));
    6565void *hash_find_item __P((struct hash_table *ht, void const *key));
    66 void *hash_insert __P((struct hash_table *ht, void *item));
    67 void *hash_insert_at __P((struct hash_table *ht, void *item, void const *slot));
     66void *hash_insert __P((struct hash_table *ht, const void *item));
     67void *hash_insert_at __P((struct hash_table *ht, const void *item, void const *slot));
    6868void *hash_delete __P((struct hash_table *ht, void const *item));
    6969void *hash_delete_at __P((struct hash_table *ht, void const *slot));
  • vendor/gnumake/current/implicit.c

    r280 r501  
    11/* Implicit rule searching for GNU Make.
    2 Copyright (C) 1988,1989,1990,1991,1992,1993,1994,1997,2000,2004,2005 Free Software Foundation, Inc.
     2Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
     31998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software
     4Foundation, Inc.
    35This file is part of GNU Make.
    46
    5 GNU Make is free software; you can redistribute it and/or modify
    6 it under the terms of the GNU General Public License as published by
    7 the Free Software Foundation; either version 2, or (at your option)
    8 any later version.
    9 
    10 GNU Make is distributed in the hope that it will be useful,
    11 but WITHOUT ANY WARRANTY; without even the implied warranty of
    12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    13 GNU General Public License for more details.
    14 
    15 You should have received a copy of the GNU General Public License
    16 along with GNU Make; see the file COPYING.  If not, write to
    17 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    18 Boston, MA 02111-1307, USA.  */
     7GNU Make is free software; you can redistribute it and/or modify it under the
     8terms of the GNU General Public License as published by the Free Software
     9Foundation; either version 2, or (at your option) any later version.
     10
     11GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     12WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     13A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     14
     15You should have received a copy of the GNU General Public License along with
     16GNU Make; see the file COPYING.  If not, write to the Free Software
     17Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
    1918
    2019#include "make.h"
     
    8180
    8281static void
    83 free_idep_chain (struct idep* p)
     82free_idep_chain (struct idep *p)
    8483{
    85   register struct idep* n;
    86   register struct file *f;
     84  struct idep *n;
    8785
    8886  for (; p != 0; p = n)
     
    9290      if (p->name)
    9391        {
     92          struct file *f = p->intermediate_file;
     93
     94          if (f != 0
     95              && (f->stem < f->name || f->stem > f->name + strlen (f->name)))
     96            free (f->stem);
     97
    9498          free (p->name);
    95 
    96           f = p->intermediate_file;
    97 
    98           if (f != 0
    99               && (f->stem < f->name
    100                   || f->stem > f->name + strlen (f->name)))
    101             free (f->stem);
    10299        }
    103100
     
    264261  int specific_rule_matched = 0;
    265262
    266   register unsigned int i = 0;  /* uninit checks OK */
    267   register struct rule *rule;
    268   register struct dep *dep, *expl_d;
     263  unsigned int i = 0;  /* uninit checks OK */
     264  struct rule *rule;
     265  struct dep *dep, *expl_d;
    269266
    270267  char *p, *vname;
     
    350347             prefix and the target pattern does not contain a slash.  */
    351348
     349          check_lastslash = 0;
     350          if (lastslash)
     351            {
    352352#ifdef VMS
    353           check_lastslash = lastslash != 0
    354                             && ((strchr (target, ']') == 0)
    355                                 && (strchr (target, ':') == 0));
     353              check_lastslash = (strchr (target, ']') == 0
     354                                 && strchr (target, ':') == 0);
    356355#else
    357           check_lastslash = lastslash != 0 && strchr (target, '/') == 0;
     356              check_lastslash = strchr (target, '/') == 0;
     357#ifdef HAVE_DOS_PATHS
     358              /* Didn't find it yet: check for DOS-type directories.  */
     359              if (check_lastslash)
     360                {
     361                  char *b = strchr (target, '\\');
     362                  check_lastslash = !(b || (target[0] && target[1] == ':'));
     363                }
    358364#endif
     365#endif
     366            }
    359367          if (check_lastslash)
    360368            {
    361               /* In that case, don't include the
    362                  directory prefix in STEM here.  */
     369              /* If so, don't include the directory prefix in STEM here.  */
    363370              unsigned int difference = lastslash - filename + 1;
    364371              if (difference > stemlen)
     
    437444          unsigned int failed = 0;
    438445          int check_lastslash;
     446          int file_variables_set = 0;
    439447
    440448          rule = tryrules[i];
     
    474482          stem_str[stemlen] = '\0';
    475483
    476           /* Temporary assign STEM to file->stem and set file variables. */
     484          /* Temporary assign STEM to file->stem (needed to set file
     485             variables below).   */
    477486          file->stem = stem_str;
    478           set_file_variables (file);
    479487
    480488          /* Try each dependency; see if it "exists".  */
    481 
    482           /* @@ There is always only one dep line for any given implicit
    483                 rule. So the loop is not necessary. Can rule->deps be 0?
    484 
    485                 Watch out for conversion of suffix rules to implicit rules.
    486           */
    487489
    488490          for (dep = rule->deps; dep != 0; dep = dep->next)
     
    493495
    494496              /* In an ideal world we would take the dependency line,
    495                  substitute the stem, re-expand the whole line and
    496                  chop it into individual prerequisites. Unfortunately
    497                  this won't work because of the "check_lastslash" twist.
    498                  Instead, we will have to go word by word, taking $()'s
    499                  into account, for each word we will substitute the stem,
    500                  re-expand, chop it up, and, if check_lastslash != 0,
    501                  add the directory part to each resulting prerequisite.  */
     497                 substitute the stem, re-expand the whole line and chop it
     498                 into individual prerequisites. Unfortunately this won't work
     499                 because of the "check_lastslash" twist.  Instead, we will
     500                 have to go word by word, taking $()'s into account, for each
     501                 word we will substitute the stem, re-expand, chop it up, and,
     502                 if check_lastslash != 0, add the directory part to each
     503                 resulting prerequisite.  */
    502504
    503505              p = get_next_word (dep->name, &len);
     
    511513                    break; /* No more words */
    512514
    513                   /* If the dependency name has %, substitute the stem.
    514                      Watch out, we are going to do something tricky here. If
    515                      we just replace % with the stem value, later, when we do
    516                      the second expansion, we will re-expand this stem value
    517                      once again. This is not good especially if you have
    518                      certain characters in your setm (like $).
    519 
    520                      Instead, we will replace % with $* and allow the second
    521                      expansion to take care of it for us. This way (since $*
    522                      is a simple variable) there won't be additional
    523                      re-expansion of the stem.  */
     515                  /* Is there a pattern in this prerequisite?  */
    524516
    525517                  for (p2 = p; p2 < p + len && *p2 != '%'; ++p2)
    526518                    ;
    527519
    528                   if (p2 < p + len)
     520                  if (dep->need_2nd_expansion)
    529521                    {
    530                       register unsigned int i = p2 - p;
    531                       bcopy (p, depname, i);
    532                       bcopy ("$*", depname + i, 2);
    533                       bcopy (p2 + 1, depname + i + 2, len - i - 1);
    534                       depname[len + 2 - 1] = '\0';
    535 
    536                       if (check_lastslash)
    537                         add_dir = 1;
    538 
    539                       had_stem = 1;
     522                      /* If the dependency name has %, substitute the stem.
     523
     524                         Watch out, we are going to do something tricky
     525                         here. If we just replace % with the stem value,
     526                         later, when we do the second expansion, we will
     527                         re-expand this stem value once again. This is not
     528                         good especially if you have certain characters in
     529                         your stem (like $).
     530
     531                         Instead, we will replace % with $* and allow the
     532                         second expansion to take care of it for us. This way
     533                         (since $* is a simple variable) there won't be
     534                         additional re-expansion of the stem.  */
     535
     536                      if (p2 < p + len)
     537                        {
     538                          register unsigned int i = p2 - p;
     539                          bcopy (p, depname, i);
     540                          bcopy ("$*", depname + i, 2);
     541                          bcopy (p2 + 1, depname + i + 2, len - i - 1);
     542                          depname[len + 2 - 1] = '\0';
     543
     544                          if (check_lastslash)
     545                            add_dir = 1;
     546
     547                          had_stem = 1;
     548                        }
     549                      else
     550                        {
     551                          bcopy (p, depname, len);
     552                          depname[len] = '\0';
     553                        }
     554
     555                      /* Set file variables. Note that we cannot do it once
     556                         at the beginning of the function because of the stem
     557                         value.  */
     558                      if (!file_variables_set)
     559                        {
     560                          set_file_variables (file);
     561                          file_variables_set = 1;
     562                        }
     563
     564                      p2 = variable_expand_for_file (depname, file);
    540565                    }
    541566                  else
    542567                    {
    543                       bcopy (p, depname, len);
    544                       depname[len] = '\0';
     568                       if (p2 < p + len)
     569                        {
     570                          register unsigned int i = p2 - p;
     571                          bcopy (p, depname, i);
     572                          bcopy (stem_str, depname + i, stemlen);
     573                          bcopy (p2 + 1, depname + i + stemlen, len - i - 1);
     574                          depname[len + stemlen - 1] = '\0';
     575
     576                          if (check_lastslash)
     577                            add_dir = 1;
     578
     579                          had_stem = 1;
     580                        }
     581                      else
     582                        {
     583                          bcopy (p, depname, len);
     584                          depname[len] = '\0';
     585                        }
     586
     587                       p2 = depname;
    545588                    }
    546 
    547                   p2 = variable_expand_for_file (depname, file);
    548589
    549590                  /* Parse the dependencies. */
     
    564605
    565606                      /* @@ It would be nice to teach parse_file_seq or
    566                          multi_glob to add prefix. This would save us
    567                          some reallocations. */
     607                         multi_glob to add prefix. This would save us some
     608                         reallocations. */
    568609
    569610                      if (order_only || add_dir || had_stem)
     
    621662              if (file_impossible_p (name))
    622663                {
    623                   /* If this dependency has already been ruled
    624                      "impossible", then the rule fails and don't
    625                      bother trying it on the second pass either
    626                      since we know that will fail too.  */
     664                  /* If this dependency has already been ruled "impossible",
     665                     then the rule fails and don't bother trying it on the
     666                     second pass either since we know that will fail too.  */
    627667                  DBS (DB_IMPLICIT,
    628668                       (d->had_stem
     
    641681                    : _("Trying rule prerequisite `%s'.\n"), name));
    642682
    643               /* If this prerequisite also happened to be explicitly
    644                  mentioned for FILE skip all the test below since it
    645                  it has to be built anyway, no matter which implicit
    646                  rule we choose. */
     683              /* If this prerequisite also happened to be explicitly mentioned
     684                 for FILE skip all the test below since it it has to be built
     685                 anyway, no matter which implicit rule we choose. */
    647686
    648687              for (expl_d = file->deps; expl_d != 0; expl_d = expl_d->next)
    649                 if (strcmp (dep_name (expl_d), name) == 0) break;
    650 
     688                if (streq (dep_name (expl_d), name))
     689                  break;
    651690              if (expl_d != 0)
    652691                continue;
    653 
    654 
    655692
    656693              /* The DEP->changed flag says that this dependency resides in a
     
    665702                  /*|| ((!dep->changed || check_lastslash) && */
    666703                  || file_exists_p (name))
    667                 {
    668                   continue;
    669                 }
     704                continue;
    670705
    671706              /* This code, given FILENAME = "lib/foo.o", dependency name
     
    684719
    685720
    686               /* We could not find the file in any place we should look.
    687                  Try to make this dependency as an intermediate file,
    688                  but only on the second pass.  */
     721              /* We could not find the file in any place we should look.  Try
     722                 to make this dependency as an intermediate file, but only on
     723                 the second pass.  */
    689724
    690725              if (intermed_ok)
     
    717752                     file and failed, mark that name as impossible
    718753                     so we won't go through the search again later.  */
     754                  if (intermediate_file->variables)
     755                    free_variable_set (intermediate_file->variables);
    719756                  file_impossible (name);
    720757                }
     
    777814        {
    778815          struct dep *next = dep->next;
    779           free (dep->name);
    780           free ((char *)dep);
     816          free_dep (dep);
    781817          dep = next;
    782818        }
     
    837873        }
    838874
    839       dep = (struct dep *) xmalloc (sizeof (struct dep));
     875      dep = alloc_dep ();
    840876      dep->ignore_mtime = d->ignore_mtime;
    841       dep->need_2nd_expansion = 0;
    842877      s = d->name; /* Hijacking the name. */
    843878      d->name = 0;
    844879      if (recursions == 0)
    845880        {
    846           dep->name = 0;
    847881          dep->file = lookup_file (s);
    848882          if (dep->file == 0)
     
    857891        {
    858892          dep->name = s;
    859           dep->file = 0;
    860           dep->changed = 0;
    861893        }
     894
    862895      if (d->intermediate_file == 0 && tryrules[foundrule]->terminal)
    863896        {
     
    902935  file->is_target = 1;
    903936
     937  /* Set precious flag. */
     938  {
     939    struct file *f = lookup_file (rule->targets[matches[foundrule]]);
     940    if (f && f->precious)
     941      file->precious = 1;
     942  }
     943
    904944  /* If this rule builds other targets, too, put the others into FILE's
    905945     `also_make' member.  */
     
    909949      if (i != matches[foundrule])
    910950        {
    911           struct dep *new = (struct dep *) xmalloc (sizeof (struct dep));
     951          struct file *f;
     952          struct dep *new = alloc_dep ();
     953
    912954          /* GKM FIMXE: handle '|' here too */
    913           new->ignore_mtime = 0;
    914           new->need_2nd_expansion = 0;
    915955          new->name = p = (char *) xmalloc (rule->lens[i] + fullstemlen + 1);
    916956          bcopy (rule->targets[i], p,
     
    923963          new->file = enter_file (new->name);
    924964          new->next = file->also_make;
     965
     966          /* Set precious flag. */
     967          f = lookup_file (rule->targets[i]);
     968          if (f && f->precious)
     969            new->file->precious = 1;
     970
     971          /* Set the is_target flag so that this file is not treated
     972             as intermediate by the pattern rule search algorithm and
     973             file_exists_p cannot pick it up yet.  */
     974          new->file->is_target = 1;
     975
    925976          file->also_make = new;
    926977        }
  • vendor/gnumake/current/job.c

    r280 r501  
    11/* Job execution and handling for GNU Make.
    2 Copyright (C) 1988,1989,1990,1991,1992,1993,1994,1995,1996,1997,1999,
    3 2000,2001,2002,2003,2004,2005 Free Software Foundation, Inc.
     2Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
     31998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software
     4Foundation, Inc.
    45This file is part of GNU Make.
    56
    6 GNU Make is free software; you can redistribute it and/or modify
    7 it under the terms of the GNU General Public License as published by
    8 the Free Software Foundation; either version 2, or (at your option)
    9 any later version.
    10 
    11 GNU Make is distributed in the hope that it will be useful,
    12 but WITHOUT ANY WARRANTY; without even the implied warranty of
    13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    14 GNU General Public License for more details.
    15 
    16 You should have received a copy of the GNU General Public License
    17 along with GNU Make; see the file COPYING.  If not, write to
    18 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    19 Boston, MA 02111-1307, USA.  */
     7GNU Make is free software; you can redistribute it and/or modify it under the
     8terms of the GNU General Public License as published by the Free Software
     9Foundation; either version 2, or (at your option) any later version.
     10
     11GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     12WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     13A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     14
     15You should have received a copy of the GNU General Public License along with
     16GNU Make; see the file COPYING.  If not, write to the Free Software
     17Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
    2018
    2119#include "make.h"
     
    3432/* Default shell to use.  */
    3533#ifdef WINDOWS32
     34#include <windows.h>
    3635
    3736char *default_shell = "sh.exe";
    3837int no_default_sh_exe = 1;
    3938int batch_mode_shell = 1;
     39HANDLE main_thread;
    4040
    4141#elif defined (_AMIGA)
     
    9999# include <starlet.h>
    100100# include <lib$routines.h>
     101static void vmsWaitForChildren PARAMS ((int *));
    101102#endif
    102103
     
    242243}
    243244
    244 /* This function creates a temporary file name with the given extension
    245  * the unixy param controls both the extension and the path separator
    246  * return an xmalloc'ed string of a newly created temp file or die.  */
     245/* This function creates a temporary file name with an extension specified
     246 * by the unixy arg.
     247 * Return an xmalloc'ed string of a newly created temp file and its
     248 * file descriptor, or die.  */
    247249static char *
    248 create_batch_filename(char const *base, int unixy)
     250create_batch_file (char const *base, int unixy, int *fd)
    249251{
    250252  const char *const ext = unixy ? "sh" : "bat";
     
    304306          char *const path = (char *) xmalloc (final_size);
    305307          memcpy (path, temp_path, final_size);
    306           CloseHandle (h);
     308          *fd = _open_osfhandle ((long)h, 0);
    307309          if (unixy)
    308310            {
     
    317319    }
    318320
     321  *fd = -1;
    319322  if (error == NULL)
    320323    error = _("Cannot create a temporary file\n");
     
    448451reap_children (int block, int err)
    449452{
     453#ifndef WINDOWS32
    450454  WAIT_T status;
    451455  /* Initially, assume we have some.  */
    452456  int reap_more = 1;
     457#endif
    453458
    454459#ifdef WAIT_NOHANG
     
    475480      int child_failed;
    476481      int any_remote, any_local;
     482      int dontcare;
    477483
    478484      if (err && block)
    479485        {
    480           /* We might block for a while, so let the user know why.  */
     486          static int printed = 0;
     487
     488          /* We might block for a while, so let the user know why.
     489             Only print this message once no matter how many jobs are left.  */
    481490          fflush (stdout);
    482           error (NILF, _("*** Waiting for unfinished jobs...."));
     491          if (!printed)
     492            error (NILF, _("*** Waiting for unfinished jobs...."));
     493          printed = 1;
    483494        }
    484495
     
    539550            {
    540551#ifdef VMS
    541               static void vmsWaitForChildren PARAMS ((int *));
    542552              vmsWaitForChildren (&status);
    543553              pid = c->pid;
     
    612622          {
    613623            HANDLE hPID;
    614             int err;
     624            int werr;
     625            HANDLE hcTID, hcPID;
    615626            exit_code = 0;
    616627            exit_sig = 0;
    617628            coredump = 0;
     629
     630            /* Record the thread ID of the main process, so that we
     631               could suspend it in the signal handler.  */
     632            if (!main_thread)
     633              {
     634                hcTID = GetCurrentThread ();
     635                hcPID = GetCurrentProcess ();
     636                if (!DuplicateHandle (hcPID, hcTID, hcPID, &main_thread, 0,
     637                                      FALSE, DUPLICATE_SAME_ACCESS))
     638                  {
     639                    DWORD e = GetLastError ();
     640                    fprintf (stderr,
     641                             "Determine main thread ID (Error %ld: %s)\n",
     642                             e, map_windows32_error_to_string(e));
     643                  }
     644                else
     645                  DB (DB_VERBOSE, ("Main thread handle = 0x%08lx\n",
     646                                   (unsigned long)main_thread));
     647              }
    618648
    619649            /* wait for anything to finish */
     
    623653
    624654                /* was an error found on this process? */
    625                 err = process_last_err(hPID);
     655                werr = process_last_err(hPID);
    626656
    627657                /* get exit data */
    628658                exit_code = process_exit_code(hPID);
    629659
    630                 if (err)
     660                if (werr)
    631661                  fprintf(stderr, "make (e=%d): %s",
    632662                          exit_code, map_windows32_error_to_string(exit_code));
     
    691721        good_stdin_used = 0;
    692722
     723      dontcare = c->dontcare;
     724
    693725      if (child_failed && !c->noerror && !ignore_errors_flag)
    694726        {
     
    696728             delete non-precious targets, and abort.  */
    697729          static int delete_on_error = -1;
    698           child_error (c->file->name, exit_code, exit_sig, coredump, 0);
     730
     731          if (!dontcare)
     732            child_error (c->file->name, exit_code, exit_sig, coredump, 0);
     733
    699734          c->file->update_status = 2;
    700735          if (delete_on_error == -1)
     
    796831      /* If the job failed, and the -k flag was not given, die,
    797832         unless we are already in the process of dying.  */
    798       if (!err && child_failed && !keep_going_flag &&
     833      if (!err && child_failed && !dontcare && !keep_going_flag &&
    799834          /* fatal_error_signal will die with the right signal.  */
    800835          !handling_fatal_signal)
     
    938973start_job_command (struct child *child)
    939974{
    940 #ifndef _AMIGA
     975#if !defined(_AMIGA) && !defined(WINDOWS32)
    941976  static int bad_stdin = -1;
    942977#endif
     
    959994
    960995  p = child->command_ptr;
    961   child->noerror = flags & COMMANDS_NOERROR;
     996  child->noerror = ((flags & COMMANDS_NOERROR) != 0);
    962997
    963998  while (*p != '\0')
     
    13521387        unblock_sigs();
    13531388        fprintf(stderr,
    1354           _("process_easy() failed failed to launch process (e=%d)\n"),
    1355           process_last_err(hPID));
    1356                for (i = 0; argv[i]; i++)
    1357                  fprintf(stderr, "%s ", argv[i]);
    1358                fprintf(stderr, _("\nCounted %d args in failed launch\n"), i);
     1389                _("process_easy() failed to launch process (e=%ld)\n"),
     1390                process_last_err(hPID));
     1391        for (i = 0; argv[i]; i++)
     1392          fprintf(stderr, "%s ", argv[i]);
     1393        fprintf(stderr, _("\nCounted %d args in failed launch\n"), i);
     1394        goto error;
    13591395      }
    13601396  }
     
    14011437  /* If we are running at least one job already and the load average
    14021438     is too high, make this one wait.  */
    1403   if (!c->remote && job_slots_used > 0 && load_too_high ())
     1439  if (!c->remote
     1440      && ((job_slots_used > 0 && load_too_high ())
     1441#ifdef WINDOWS32
     1442          || (process_used_slots () >= MAXIMUM_WAIT_OBJECTS)
     1443#endif
     1444          ))
    14041445    {
    14051446      /* Put this child on the chain of children waiting for the load average
     
    15751616  c->command_lines = lines;
    15761617  c->sh_batch_file = NULL;
     1618
     1619  /* Cache dontcare flag because file->dontcare can be changed once we
     1620     return. Check dontcare inheritance mechanism for details.  */
     1621  c->dontcare = file->dontcare;
    15771622
    15781623  /* Fetch the first command line to be run.  */
     
    17721817  time_t now;
    17731818
     1819#ifdef WINDOWS32
     1820  /* sub_proc.c cannot wait for more than MAXIMUM_WAIT_OBJECTS children */
     1821  if (process_used_slots () >= MAXIMUM_WAIT_OBJECTS)
     1822    return 1;
     1823#endif
     1824
    17741825  if (max_load_average < 0)
    17751826    return 0;
     
    19081959}
    19091960
    1910 #elif !defined (_AMIGA) && !defined (__MSDOS__)
     1961#elif !defined (_AMIGA) && !defined (__MSDOS__) && !defined (VMS)
    19111962
    19121963/* UNIX:
     
    19291980  exec_command (argv, envp);
    19301981}
    1931 #endif /* !AMIGA && !__MSDOS__ */
     1982#endif /* !AMIGA && !__MSDOS__ && !VMS */
    19321983#endif /* !WINDOWS32 */
    19331984
     
    19722023      int i;
    19732024      fprintf(stderr,
    1974               _("process_easy() failed failed to launch process (e=%d)\n"),
     2025              _("process_easy() failed failed to launch process (e=%ld)\n"),
    19752026              process_last_err(hPID));
    19762027      for (i = 0; argv[i]; i++)
     
    20022053      else
    20032054          fprintf(stderr,
    2004                   _("make reaped child pid %d, still waiting for pid %d\n"),
    2005                   hWaitPID, hPID);
     2055                  _("make reaped child pid %ld, still waiting for pid %ld\n"),
     2056                  (DWORD)hWaitPID, (DWORD)hPID);
    20062057    }
    20072058
     
    22742325  int instring, word_has_equals, seen_nonequals, last_argument_was_empty;
    22752326  char **new_argv = 0;
     2327  char *argstr = 0;
    22762328#ifdef WINDOWS32
    22772329  int slow_flag = 0;
    22782330
    2279   if (no_default_sh_exe) {
     2331  if (!unixy_shell) {
    22802332    sh_cmds = sh_cmds_dos;
    22812333    sh_chars = sh_chars_dos;
     
    23602412
    23612413  /* All the args can fit in a buffer as big as LINE is.   */
    2362   ap = new_argv[0] = (char *) xmalloc (i);
     2414  ap = new_argv[0] = argstr = (char *) xmalloc (i);
    23632415  end = ap + i;
    23642416
     
    23682420  for (p = line; *p != '\0'; ++p)
    23692421    {
    2370       if (ap > end)
    2371         abort ();
     2422      assert (ap <= end);
    23722423
    23732424      if (instring)
    23742425        {
    2375         string_char:
    23762426          /* Inside a string, just copy any char except a closing quote
    23772427             or a backslash-newline combination.  */
     
    23832433            }
    23842434          else if (*p == '\\' && p[1] == '\n')
    2385             goto swallow_escaped_newline;
     2435            {
     2436              /* Backslash-newline is handled differently depending on what
     2437                 kind of string we're in: inside single-quoted strings you
     2438                 keep them; in double-quoted strings they disappear.
     2439                 For DOS/Windows/OS2, if we don't have a POSIX shell,
     2440                 we keep the pre-POSIX behavior of removing the
     2441                 backslash-newline.  */
     2442              if (instring == '"'
     2443#if defined (__MSDOS__) || defined (__EMX__) || defined (WINDOWS32)
     2444                  || !unixy_shell
     2445#endif
     2446                  )
     2447                ++p;
     2448              else
     2449                {
     2450                  *(ap++) = *(p++);
     2451                  *(ap++) = *p;
     2452                }
     2453              /* If there's a TAB here, skip it.  */
     2454              if (p[1] == '\t')
     2455                ++p;
     2456            }
    23862457          else if (*p == '\n' && restp != NULL)
    23872458            {
     
    24232494
    24242495          case '\\':
    2425             /* Backslash-newline combinations are eaten.  */
     2496            /* Backslash-newline has special case handling, ref POSIX.
     2497               We're in the fastpath, so emulate what the shell would do.  */
    24262498            if (p[1] == '\n')
    24272499              {
    2428               swallow_escaped_newline:
    2429 
    2430                 /* Eat the backslash, the newline, and following whitespace,
    2431                    replacing it all with a single space.  */
    2432                 p += 2;
    2433 
    2434                 /* If there is a tab after a backslash-newline,
    2435                    remove it from the source line which will be echoed,
    2436                    since it was most likely used to line
    2437                    up the continued line with the previous one.  */
    2438                 if (*p == '\t')
    2439                   /* Note these overlap and strcpy() is undefined for
    2440                      overlapping objects in ANSI C.  The strlen() _IS_ right,
    2441                      since we need to copy the nul byte too.  */
    2442                   bcopy (p + 1, p, strlen (p));
    2443 
    2444                 if (instring)
    2445                   goto string_char;
    2446                 else
    2447                   {
    2448                     if (ap != new_argv[i])
    2449                       /* Treat this as a space, ending the arg.
    2450                          But if it's at the beginning of the arg, it should
    2451                          just get eaten, rather than becoming an empty arg. */
    2452                       goto end_of_arg;
    2453                     else
    2454                       p = next_token (p) - 1;
    2455                   }
     2500                /* Throw out the backslash and newline.  */
     2501                ++p;
     2502
     2503                /* If there is a tab after a backslash-newline, remove it.  */
     2504                if (p[1] == '\t')
     2505                  ++p;
     2506
     2507                /* If there's nothing in this argument yet, skip any
     2508                   whitespace before the start of the next word.  */
     2509                if (ap == new_argv[i])
     2510                  p = next_token (p + 1) - 1;
    24562511              }
    24572512            else if (p[1] != '\0')
    24582513              {
    24592514#ifdef HAVE_DOS_PATHS
    2460                 /* Only remove backslashes before characters special
    2461                    to Unixy shells.  All other backslashes are copied
    2462                    verbatim, since they are probably DOS-style
    2463                    directory separators.  This still leaves a small
    2464                    window for problems, but at least it should work
    2465                    for the vast majority of naive users.  */
     2515                /* Only remove backslashes before characters special to Unixy
     2516                   shells.  All other backslashes are copied verbatim, since
     2517                   they are probably DOS-style directory separators.  This
     2518                   still leaves a small window for problems, but at least it
     2519                   should work for the vast majority of naive users.  */
    24662520
    24672521#ifdef __MSDOS__
     
    24782532                  if (p[1] != '\\' && p[1] != '\''
    24792533                      && !isspace ((unsigned char)p[1])
    2480                       && (strchr (sh_chars_sh, p[1]) == 0))
     2534                      && strchr (sh_chars_sh, p[1]) == 0)
    24812535                    /* back up one notch, to copy the backslash */
    24822536                    --p;
     
    25072561          case ' ':
    25082562          case '\t':
    2509           end_of_arg:
    25102563            /* We have the end of an argument.
    25112564               Terminate the text of the argument.  */
     
    25432596
    25442597            /* Ignore multiple whitespace chars.  */
    2545             p = next_token (p);
    2546             /* Next iteration should examine the first nonwhite char.  */
    2547             --p;
     2598            p = next_token (p) - 1;
    25482599            break;
    25492600
     
    25752626
    25762627  if (new_argv[0] == 0)
    2577     /* Line was empty.  */
    2578     return 0;
     2628    {
     2629      /* Line was empty.  */
     2630      free (argstr);
     2631      free ((char *)new_argv);
     2632      return 0;
     2633    }
    25792634
    25802635  return new_argv;
     
    25862641    {
    25872642      /* Free the old argument list we were working on.  */
    2588       free (new_argv[0]);
    2589       free ((void *)new_argv);
     2643      free (argstr);
     2644      free ((char *)new_argv);
    25902645    }
    25912646
     
    26772732        else if (*p == '\\' && p[1] == '\n')
    26782733          {
    2679             /* Eat the backslash, the newline, and following whitespace,
    2680                replacing it all with a single space (which is escaped
    2681                from the shell).  */
    2682             p += 2;
    2683 
    2684             /* If there is a tab after a backslash-newline,
    2685                remove it from the source line which will be echoed,
    2686                since it was most likely used to line
    2687                up the continued line with the previous one.  */
    2688             if (*p == '\t')
    2689               bcopy (p + 1, p, strlen (p));
    2690 
    2691             p = next_token (p);
    2692             --p;
    2693             if (unixy_shell && !batch_mode_shell)
    2694               *ap++ = '\\';
    2695             *ap++ = ' ';
     2734            /* POSIX says we keep the backslash-newline, but throw out
     2735               the next char if it's a TAB.  If we don't have a POSIX
     2736               shell on DOS/Windows/OS2, mimic the pre-POSIX behavior
     2737               and remove the backslash/newline.  */
     2738#if defined (__MSDOS__) || defined (__EMX__) || defined (WINDOWS32)
     2739# define PRESERVE_BSNL  unixy_shell
     2740#else
     2741# define PRESERVE_BSNL  1
     2742#endif
     2743            if (PRESERVE_BSNL)
     2744              {
     2745                *(ap++) = '\\';
     2746                *(ap++) = '\\';
     2747                *(ap++) = '\n';
     2748              }
     2749
     2750            ++p;
     2751            if (p[1] == '\t')
     2752              ++p;
     2753
    26962754            continue;
    26972755          }
     
    27232781       command line (e.g. Cygnus GNUWIN32 sh.exe on WIN32 systems).  In these
    27242782       cases, run commands via a script file.  */
    2725     if ((no_default_sh_exe || batch_mode_shell) && batch_filename_ptr) {
     2783    if (just_print_flag) {
     2784      /* Need to allocate new_argv, although it's unused, because
     2785        start_job_command will want to free it and its 0'th element.  */
     2786      new_argv = (char **) xmalloc(2 * sizeof (char *));
     2787      new_argv[0] = xstrdup ("");
     2788      new_argv[1] = NULL;
     2789    } else if ((no_default_sh_exe || batch_mode_shell) && batch_filename_ptr) {
     2790      int temp_fd;
    27262791      FILE* batch = NULL;
    27272792      int id = GetCurrentProcessId();
     
    27302795      /* create a file name */
    27312796      sprintf(fbuf, "make%d", id);
    2732       *batch_filename_ptr = create_batch_filename (fbuf, unixy_shell);
     2797      *batch_filename_ptr = create_batch_file (fbuf, unixy_shell, &temp_fd);
    27332798
    27342799      DB (DB_JOBS, (_("Creating temporary batch file %s\n"),
    27352800                    *batch_filename_ptr));
    27362801
    2737       /* create batch file to execute command */
    2738       batch = fopen (*batch_filename_ptr, "w");
     2802      /* Create a FILE object for the batch file, and write to it the
     2803         commands to be executed.  Put the batch file in TEXT mode.  */
     2804      _setmode (temp_fd, _O_TEXT);
     2805      batch = _fdopen (temp_fd, "wt");
    27392806      if (!unixy_shell)
    27402807        fputs ("@echo off\n", batch);
  • vendor/gnumake/current/job.h

    r280 r501  
    11/* Definitions for managing subprocesses in GNU Make.
    2 Copyright (C) 1992, 1993, 1996, 1999 Free Software Foundation, Inc.
     2Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
     32002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
    34This file is part of GNU Make.
    45
    5 GNU Make is free software; you can redistribute it and/or modify
    6 it under the terms of the GNU General Public License as published by
    7 the Free Software Foundation; either version 2, or (at your option)
    8 any later version.
     6GNU Make is free software; you can redistribute it and/or modify it under the
     7terms of the GNU General Public License as published by the Free Software
     8Foundation; either version 2, or (at your option) any later version.
    99
    10 GNU Make is distributed in the hope that it will be useful,
    11 but WITHOUT ANY WARRANTY; without even the implied warranty of
    12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    13 GNU General Public License for more details.
     10GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     11WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     12A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
    1413
    15 You should have received a copy of the GNU General Public License
    16 along with GNU Make; see the file COPYING.  If not, write to
    17 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    18 Boston, MA 02111-1307, USA.  */
     14You should have received a copy of the GNU General Public License along with
     15GNU Make; see the file COPYING.  If not, write to the Free Software
     16Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
    1917
    2018#ifndef SEEN_JOB_H
     
    6462    unsigned int good_stdin:1;  /* Nonzero if this child has a good stdin.  */
    6563    unsigned int deleted:1;     /* Nonzero if targets have been deleted.  */
     64    unsigned int dontcare:1;    /* Saved dontcare flag.  */
    6665  };
    6766
  • vendor/gnumake/current/main.c

    r280 r501  
    11/* Argument parsing and main program of GNU Make.
    2 Copyright (C) 1988, 1989, 1990, 1991, 1994, 1995, 1996, 1997, 1998, 1999,
    3 2002, 2003, 2005 Free Software Foundation, Inc.
     2Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
     31998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software
     4Foundation, Inc.
    45This file is part of GNU Make.
    56
    6 GNU Make is free software; you can redistribute it and/or modify
    7 it under the terms of the GNU General Public License as published by
    8 the Free Software Foundation; either version 2, or (at your option)
    9 any later version.
    10 
    11 GNU Make is distributed in the hope that it will be useful,
    12 but WITHOUT ANY WARRANTY; without even the implied warranty of
    13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    14 GNU General Public License for more details.
    15 
    16 You should have received a copy of the GNU General Public License
    17 along with GNU Make; see the file COPYING.  If not, write to
    18 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
    19 MA 02111-1307, USA.  */
     7GNU Make is free software; you can redistribute it and/or modify it under the
     8terms of the GNU General Public License as published by the Free Software
     9Foundation; either version 2, or (at your option) any later version.
     10
     11GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     12WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     13A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     14
     15You should have received a copy of the GNU General Public License along with
     16GNU Make; see the file COPYING.  If not, write to the Free Software
     17Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
    2018
    2119#include "make.h"
     
    8482#endif
    8583
     84static void clean_jobserver PARAMS ((int status));
    8685static void print_data_base PARAMS ((void));
    8786static void print_version PARAMS ((void));
     
    273272   they appear out of date or not.  */
    274273
     274static int always_make_set = 0;
    275275int always_make_flag = 0;
    276276
     
    365365  {
    366366    { 'b', ignore, 0, 0, 0, 0, 0, 0, 0 },
    367     { 'B', flag, (char *) &always_make_flag, 1, 1, 0, 0, 0, "always-make" },
     367    { 'B', flag, (char *) &always_make_set, 1, 1, 0, 0, 0, "always-make" },
    368368    { 'C', string, (char *) &directories, 0, 0, 0, 0, 0, "directory" },
    369369    { 'd', flag, (char *) &debug_flag, 1, 1, 0, 0, 0, 0 },
     
    419419    { CHAR_MAX+4, flag, (char *) &warn_undefined_variables_flag, 1, 1, 0, 0, 0,
    420420      "warn-undefined-variables" },
    421     { 0 }
     421    { 0, 0, 0, 0, 0, 0, 0, 0, 0 }
    422422  };
    423423
     
    488488
    489489int posix_pedantic;
     490
     491/* Nonzero if we have seen the '.SECONDEXPANSION' target.
     492   This turns on secondary expansion of prerequisites.  */
     493
     494int second_expansion;
    490495
    491496/* Nonzero if we have seen the `.NOTPARALLEL' target.
     
    536541{
    537542  init_hash_global_variable_set ();
     543  strcache_init ();
    538544  init_hash_files ();
    539545  hash_init_directories ();
     
    666672    {
    667673      sprintf(errmsg,
    668               _("%s: Interrupt/Exception caught (code = 0x%x, addr = 0x%x)\n"),
    669               prg, exrec->ExceptionCode, exrec->ExceptionAddress);
     674              _("%s: Interrupt/Exception caught (code = 0x%lx, addr = 0x%lx)\n"),
     675              prg, exrec->ExceptionCode, (DWORD)exrec->ExceptionAddress);
    670676      fprintf(stderr, errmsg);
    671677      exit(255);
     
    673679
    674680  sprintf(errmsg,
    675           _("\nUnhandled exception filter called from program %s\nExceptionCode = %x\nExceptionFlags = %x\nExceptionAddress = %x\n"),
     681          _("\nUnhandled exception filter called from program %s\nExceptionCode = %lx\nExceptionFlags = %lx\nExceptionAddress = %lx\n"),
    676682          prg, exrec->ExceptionCode, exrec->ExceptionFlags,
    677           exrec->ExceptionAddress);
     683          (DWORD)exrec->ExceptionAddress);
    678684
    679685  if (exrec->ExceptionCode == EXCEPTION_ACCESS_VIOLATION
     
    681687    sprintf(&errmsg[strlen(errmsg)],
    682688            (exrec->ExceptionInformation[0]
    683              ? _("Access violation: write operation at address %x\n")
    684              : _("Access violation: read operation at address %x\n")),
     689             ? _("Access violation: write operation at address %lx\n")
     690             : _("Access violation: read operation at address %lx\n")),
    685691            exrec->ExceptionInformation[1]);
    686692
     
    755761    batch_mode_shell = 1;
    756762    unixy_shell = 0;
    757     sh_found = 0;
     763    sprintf (sh_path, "%s", search_token);
     764    default_shell = xstrdup (w32ify (sh_path, 0));
     765    DB (DB_VERBOSE,
     766        (_("find_and_set_shell setting default_shell = %s\n"), default_shell));
     767    sh_found = 1;
    758768  } else if (!no_default_sh_exe &&
    759769             (token == NULL || !strcmp (search_token, default_shell))) {
     
    769779  } else {
    770780    char *p;
    771     struct variable *v = lookup_variable ("PATH", 4);
     781    struct variable *v = lookup_variable (STRING_SIZE_TUPLE ("PATH"));
    772782
    773783    /* Search Path for shell */
     
    842852open_tmpfile(char **name, const char *template)
    843853{
     854#ifdef HAVE_FDOPEN
    844855  int fd;
     856#endif
    845857
    846858#if defined HAVE_MKSTEMP || defined HAVE_MKTEMP
     
    894906  struct dep *read_makefiles;
    895907  PATH_VAR (current_directory);
     908  unsigned int restarts = 0;
    896909#ifdef WINDOWS32
    897910  char *unix_path = NULL;
     
    917930      }
    918931  }
     932#endif
     933
     934#ifdef HAVE_ATEXIT
     935  atexit (close_stdout);
    919936#endif
    920937
     
    10471064          /* Extract program from full path */
    10481065          int argv0_len;
    1049           char *p = strrchr (argv[0], '\\');
    1050           if (!p)
    1051             p = argv[0];
    1052           argv0_len = strlen(p);
    1053           if (argv0_len > 4
    1054               && streq (&p[argv0_len - 4], ".exe"))
     1066          program = strrchr (argv[0], '\\');
     1067          if (program)
    10551068            {
    1056               /* Remove .exe extension */
    1057               p[argv0_len - 4] = '\0';
    1058               /* Increment past the initial '\' */
    1059               program = p + 1;
     1069              argv0_len = strlen(program);
     1070              if (argv0_len > 4 && streq (&program[argv0_len - 4], ".exe"))
     1071                /* Remove .exe extension */
     1072                program[argv0_len - 4] = '\0';
    10601073            }
    10611074        }
     
    11011114  /* Set up .FEATURES */
    11021115  define_variable (".FEATURES", 9,
    1103                    "target-specific order-only second-expansion",
     1116                   "target-specific order-only second-expansion else-if",
    11041117                   o_default, 0);
     1118#ifndef NO_ARCHIVES
     1119  do_variable_definition (NILF, ".FEATURES", "archives",
     1120                          o_default, f_append, 0);
     1121#endif
    11051122#ifdef MAKE_JOBSERVER
    11061123  do_variable_definition (NILF, ".FEATURES", "jobserver",
     
    11501167
    11511168          /* Another wrinkle is that POSIX says the value of SHELL set in the
    1152              makefile should not change the value of SHELL given to
    1153              subprocesses, which seems silly to me but...  */
    1154           if (strncmp (envp[i], "SHELL=", 6) == 0)
     1169             makefile won't change the value of SHELL given to subprocesses  */
     1170          if (streq (v->name, "SHELL"))
    11551171            {
    11561172#ifndef __MSDOS__
     
    11591175              shell_var.name = "SHELL";
    11601176              shell_var.value = xstrdup (ep + 1);
     1177            }
     1178
     1179          /* If MAKE_RESTARTS is set, remember it but don't export it.  */
     1180          if (streq (v->name, "MAKE_RESTARTS"))
     1181            {
     1182              v->export = v_noexport;
     1183              restarts = (unsigned int) atoi (ep + 1);
    11611184            }
    11621185        }
     
    12041227  /* Decode the switches.  */
    12051228
    1206   decode_env_switches ("MAKEFLAGS", 9);
     1229  decode_env_switches (STRING_SIZE_TUPLE ("MAKEFLAGS"));
    12071230#if 0
    12081231  /* People write things like:
    12091232        MFLAGS="CC=gcc -pipe" "CFLAGS=-g"
    12101233     and we set the -p, -i and -e switches.  Doesn't seem quite right.  */
    1211   decode_env_switches ("MFLAGS", 6);
     1234  decode_env_switches (STRING_SIZE_TUPLE ("MFLAGS"));
    12121235#endif
    12131236  decode_switches (argc, argv, 0);
    12141237#ifdef WINDOWS32
    12151238  if (suspend_flag) {
    1216         fprintf(stderr, "%s (pid = %d)\n", argv[0], GetCurrentProcessId());
     1239        fprintf(stderr, "%s (pid = %ld)\n", argv[0], GetCurrentProcessId());
    12171240        fprintf(stderr, _("%s is suspending for 30 seconds..."), argv[0]);
    12181241        Sleep(30 * 1000);
     
    12231246  decode_debug_flags ();
    12241247
     1248  /* Set always_make_flag if -B was given and we've not restarted already.  */
     1249  always_make_flag = always_make_set && (restarts == 0);
     1250
    12251251  /* Print version information.  */
    1226 
    12271252  if (print_version_flag || print_data_base_flag || db_level)
    1228     print_version ();
    1229 
    1230   /* `make --version' is supposed to just print the version and exit.  */
    1231   if (print_version_flag)
    1232     die (0);
     1253    {
     1254      print_version ();
     1255
     1256      /* `make --version' is supposed to just print the version and exit.  */
     1257      if (print_version_flag)
     1258        die (0);
     1259    }
    12331260
    12341261#ifndef VMS
     
    13771404  /* Figure out the level of recursion.  */
    13781405  {
    1379     struct variable *v = lookup_variable (MAKELEVEL_NAME, MAKELEVEL_LENGTH);
     1406    struct variable *v = lookup_variable (STRING_SIZE_TUPLE (MAKELEVEL_NAME));
    13801407    if (v != 0 && v->value[0] != '\0' && v->value[0] != '-')
    13811408      makelevel = (unsigned int) atoi (v->value);
     
    14241451    }
    14251452
    1426   (void) define_variable ("CURDIR", 6, current_directory, o_default, 0);
     1453  (void) define_variable ("CURDIR", 6, current_directory, o_file, 0);
    14271454
    14281455  /* Read any stdin makefiles into temporary files.  */
     
    15771604  if (no_default_sh_exe)
    15781605    no_default_sh_exe = !find_and_set_default_shell(NULL);
    1579 
    1580   if (no_default_sh_exe && job_slots != 1) {
    1581     error (NILF, _("Do not specify -j or --jobs if sh.exe is not available."));
    1582     error (NILF, _("Resetting make for single job mode."));
    1583     job_slots = 1;
    1584   }
    15851606#endif /* WINDOWS32 */
    15861607
     
    15891610  {
    15901611    extern int _is_unixy_shell (const char *_path);
    1591     struct variable *shv = lookup_variable ("SHELL", 5);
     1612    struct variable *shv = lookup_variable (STRING_SIZE_TUPLE ("SHELL"));
    15921613    extern int unixy_shell;
    15931614    extern char *default_shell;
     
    16081629
    16091630  /* Decode switches again, in case the variables were set by the makefile.  */
    1610   decode_env_switches ("MAKEFLAGS", 9);
     1631  decode_env_switches (STRING_SIZE_TUPLE ("MAKEFLAGS"));
    16111632#if 0
    1612   decode_env_switches ("MFLAGS", 6);
     1633  decode_env_switches (STRING_SIZE_TUPLE ("MFLAGS"));
    16131634#endif
    16141635
     
    17611782  build_vpath_lists ();
    17621783
    1763   /* Mark files given with -o flags as very old
    1764      and as having been updated already, and files given with -W flags as
    1765      brand new (time-stamp as far as possible into the future).  */
     1784  /* Mark files given with -o flags as very old and as having been updated
     1785     already, and files given with -W flags as brand new (time-stamp as far
     1786     as possible into the future).  If restarts is set we'll do -W later.  */
    17661787
    17671788  if (old_files != 0)
     
    17751796      }
    17761797
    1777   if (new_files != 0)
     1798  if (!restarts && new_files != 0)
    17781799    {
    17791800      for (p = new_files->list; *p != 0; ++p)
     
    18351856
    18361857                      /* Free the storage.  */
    1837                       free ((char *) d);
     1858                      free_dep (d);
    18381859
    18391860                      d = last == 0 ? read_makefiles : last->next;
     
    19541975          log_working_directory (0);
    19551976
     1977          clean_jobserver (0);
     1978
    19561979          if (makefiles != 0)
    19571980            {
     
    19982021            }
    19992022
    2000 #ifndef _AMIGA
    2001           for (p = environ; *p != 0; ++p)
    2002             if (strneq (*p, MAKELEVEL_NAME, MAKELEVEL_LENGTH)
    2003                 && (*p)[MAKELEVEL_LENGTH] == '=')
    2004               {
    2005                 /* The SGI compiler apparently can't understand
    2006                    the concept of storing the result of a function
    2007                    in something other than a local variable.  */
    2008                 char *sgi_loses;
    2009                 sgi_loses = (char *) alloca (40);
    2010                 *p = sgi_loses;
    2011                 sprintf (*p, "%s=%u", MAKELEVEL_NAME, makelevel);
    2012                 break;
    2013               }
    2014 #else /* AMIGA */
    2015           {
    2016             char buffer[256];
    2017             int len;
    2018 
    2019             len = GetVar (MAKELEVEL_NAME, buffer, sizeof (buffer), GVF_GLOBAL_ONLY);
    2020 
    2021             if (len != -1)
    2022             {
    2023             sprintf (buffer, "%u", makelevel);
    2024               SetVar (MAKELEVEL_NAME, buffer, -1, GVF_GLOBAL_ONLY);
    2025             }
    2026           }
    2027 #endif
     2023          ++restarts;
    20282024
    20292025          if (ISDB (DB_BASIC))
    20302026            {
    20312027              char **p;
    2032               fputs (_("Re-executing:"), stdout);
     2028              printf (_("Re-executing[%u]:"), restarts);
    20332029              for (p = nargv; *p != 0; ++p)
    20342030                printf (" %s", *p);
    20352031              putchar ('\n');
    20362032            }
     2033
     2034#ifndef _AMIGA
     2035          for (p = environ; *p != 0; ++p)
     2036            {
     2037              if (strneq (*p, MAKELEVEL_NAME, MAKELEVEL_LENGTH)
     2038                  && (*p)[MAKELEVEL_LENGTH] == '=')
     2039                {
     2040                  /* The SGI compiler apparently can't understand
     2041                     the concept of storing the result of a function
     2042                     in something other than a local variable.  */
     2043                  char *sgi_loses;
     2044                  sgi_loses = (char *) alloca (40);
     2045                  *p = sgi_loses;
     2046                  sprintf (*p, "%s=%u", MAKELEVEL_NAME, makelevel);
     2047                }
     2048              if (strneq (*p, "MAKE_RESTARTS=", 14))
     2049                {
     2050                  char *sgi_loses;
     2051                  sgi_loses = (char *) alloca (40);
     2052                  *p = sgi_loses;
     2053                  sprintf (*p, "MAKE_RESTARTS=%u", restarts);
     2054                  restarts = 0;
     2055                }
     2056            }
     2057#else /* AMIGA */
     2058          {
     2059            char buffer[256];
     2060
     2061            sprintf (buffer, "%u", makelevel);
     2062            SetVar (MAKELEVEL_NAME, buffer, -1, GVF_GLOBAL_ONLY);
     2063
     2064            sprintf (buffer, "%u", restarts);
     2065            SetVar ("MAKE_RESTARTS", buffer, -1, GVF_GLOBAL_ONLY);
     2066            restarts = 0;
     2067          }
     2068#endif
     2069
     2070          /* If we didn't set the restarts variable yet, add it.  */
     2071          if (restarts)
     2072            {
     2073              char *b = alloca (40);
     2074              sprintf (b, "MAKE_RESTARTS=%u", restarts);
     2075              putenv (b);
     2076            }
    20372077
    20382078          fflush (stdout);
     
    20862126  define_makeflags (1, 0);
    20872127
     2128  /* Set always_make_flag if -B was given.  */
     2129  always_make_flag = always_make_set;
     2130
     2131  /* If restarts is set we haven't set up -W files yet, so do that now.  */
     2132  if (restarts && new_files != 0)
     2133    {
     2134      for (p = new_files->list; *p != 0; ++p)
     2135        {
     2136          f = enter_command_line_file (*p);
     2137          f->last_mtime = f->mtime_before_update = NEW_MTIME;
     2138        }
     2139    }
     2140
    20882141  /* If there is a temp file from reading a makefile from stdin, get rid of
    20892142     it now.  */
     
    21272180              }
    21282181
    2129             goals = (struct dep *) xmalloc (sizeof (struct dep));
    2130             goals->next = 0;
    2131             goals->name = 0;
    2132             goals->ignore_mtime = 0;
    2133             goals->need_2nd_expansion = 0;
     2182            goals = alloc_dep ();
    21342183            goals->file = default_goal_file;
    21352184          }
     
    21812230  }
    21822231
     2232  /* NOTREACHED */
    21832233  return 0;
    21842234}
     
    22872337      if (goals == 0)
    22882338        {
    2289           goals = (struct dep *) xmalloc (sizeof (struct dep));
     2339          goals = alloc_dep ();
    22902340          lastgoal = goals;
    22912341        }
    22922342      else
    22932343        {
    2294           lastgoal->next = (struct dep *) xmalloc (sizeof (struct dep));
     2344          lastgoal->next = alloc_dep ();
    22952345          lastgoal = lastgoal->next;
    22962346        }
    2297       lastgoal->name = 0;
     2347
    22982348      lastgoal->file = f;
    2299       lastgoal->ignore_mtime = 0;
    2300       lastgoal->need_2nd_expansion = 0;
    23012349
    23022350      {
     
    23052353        char *value;
    23062354
    2307         v = lookup_variable ("MAKECMDGOALS", 12);
     2355        v = lookup_variable (STRING_SIZE_TUPLE ("MAKECMDGOALS"));
    23082356        if (v == 0)
    23092357          value = f->name;
     
    28962944
    28972945  printf ("%sGNU Make %s\n\
    2898 %sCopyright (C) 2003  Free Software Foundation, Inc.\n",
     2946%sCopyright (C) 2006  Free Software Foundation, Inc.\n",
    28992947          precede, version_string, precede);
    29002948
     
    29202968
    29212969static void
    2922 print_data_base (void)
     2970print_data_base ()
    29232971{
    29242972  time_t when;
     
    29322980  print_file_data_base ();
    29332981  print_vpath_data_base ();
     2982  strcache_print_stats ("#");
    29342983
    29352984  when = time ((time_t *) 0);
    29362985  printf (_("\n# Finished Make data base on %s\n"), ctime (&when));
     2986}
     2987
     2988static void
     2989clean_jobserver (int status)
     2990{
     2991  char token = '+';
     2992
     2993  /* Sanity: have we written all our jobserver tokens back?  If our
     2994     exit status is 2 that means some kind of syntax error; we might not
     2995     have written all our tokens so do that now.  If tokens are left
     2996     after any other error code, that's bad.  */
     2997
     2998  if (job_fds[0] != -1 && jobserver_tokens)
     2999    {
     3000      if (status != 2)
     3001        error (NILF,
     3002               "INTERNAL: Exiting with %u jobserver tokens (should be 0)!",
     3003               jobserver_tokens);
     3004      else
     3005        while (jobserver_tokens--)
     3006          {
     3007            int r;
     3008
     3009            EINTRLOOP (r, write (job_fds[1], &token, 1));
     3010            if (r != 1)
     3011              perror_with_name ("write", "");
     3012          }
     3013    }
     3014
     3015
     3016  /* Sanity: If we're the master, were all the tokens written back?  */
     3017
     3018  if (master_job_slots)
     3019    {
     3020      /* We didn't write one for ourself, so start at 1.  */
     3021      unsigned int tcnt = 1;
     3022
     3023      /* Close the write side, so the read() won't hang.  */
     3024      close (job_fds[1]);
     3025
     3026      while (read (job_fds[0], &token, 1) == 1)
     3027        ++tcnt;
     3028
     3029      if (tcnt != master_job_slots)
     3030        error (NILF,
     3031               "INTERNAL: Exiting with %u jobserver tokens available; should be %u!",
     3032               tcnt, master_job_slots);
     3033
     3034      close (job_fds[0]);
     3035    }
    29373036}
    29383037
     
    29473046  if (!dying)
    29483047    {
    2949       char token = '+';
    29503048      int err;
    29513049
     
    29563054
    29573055      /* Wait for children to die.  */
    2958       for (err = (status != 0); job_slots_used > 0; err = 0)
     3056      err = (status != 0);
     3057      while (job_slots_used > 0)
    29593058        reap_children (1, err);
    29603059
     
    29683067        print_data_base ();
    29693068
    2970       /* Sanity: have we written all our jobserver tokens back?  If our
    2971          exit status is 2 that means some kind of syntax error; we might not
    2972          have written all our tokens so do that now.  If tokens are left
    2973          after any other error code, that's bad.  */
    2974 
    2975       if (job_fds[0] != -1 && jobserver_tokens)
    2976         {
    2977           if (status != 2)
    2978             error (NILF,
    2979                    "INTERNAL: Exiting with %u jobserver tokens (should be 0)!",
    2980                    jobserver_tokens);
    2981           else
    2982             while (jobserver_tokens--)
    2983               {
    2984                 int r;
    2985 
    2986                 EINTRLOOP (r, write (job_fds[1], &token, 1));
    2987                 if (r != 1)
    2988                   perror_with_name ("write", "");
    2989               }
    2990         }
    2991 
    2992 
    2993       /* Sanity: If we're the master, were all the tokens written back?  */
    2994 
    2995       if (master_job_slots)
    2996         {
    2997           /* We didn't write one for ourself, so start at 1.  */
    2998           unsigned int tcnt = 1;
    2999 
    3000           /* Close the write side, so the read() won't hang.  */
    3001           close (job_fds[1]);
    3002 
    3003           while ((err = read (job_fds[0], &token, 1)) == 1)
    3004             ++tcnt;
    3005 
    3006           if (tcnt != master_job_slots)
    3007             error (NILF,
    3008                    "INTERNAL: Exiting with %u jobserver tokens available; should be %u!",
    3009                    tcnt, master_job_slots);
    3010         }
     3069      clean_jobserver (status);
    30113070
    30123071      /* Try to move back to the original directory.  This is essential on
  • vendor/gnumake/current/make.1

    r54 r501  
    1 .TH MAKE 1L "22 August 1989" "GNU" "LOCAL USER COMMANDS"
     1.TH MAKE 1 "22 August 1989" "GNU" "LOCAL USER COMMANDS"
    22.SH NAME
    33make \- GNU make utility to maintain groups of programs
     
    77.B \-f
    88.I makefile
    9 ] [ option ] ...
    10 target ...
     9] [ options ] ... [ targets ] ...
    1110.SH WARNING
    12 This man page is an extract of the documentation of
    13 .I GNU make .
     11This man page is an extract of the documentation of GNU
     12.IR make .
    1413It is updated only occasionally, because the GNU project does not use nroff.
    1514For complete, current documentation, refer to the Info file
    1615.B make.info
    1716which is made from the Texinfo source file
    18 .BR make.texinfo .
     17.BR make.texi .
    1918.SH DESCRIPTION
    2019.LP
     
    2625The manual describes the GNU implementation of
    2726.IR make ,
    28 which was written by Richard Stallman and Roland McGrath.
     27which was written by Richard Stallman and Roland McGrath, and is
     28currently maintained by Paul Smith.
    2929Our examples show C programs, since they are most common, but you can use
    3030.I make
     
    107107.sp 1
    108108.TP 0.5i
    109 .B \-b
    110 .TP 0.5i
    111 .B \-m
     109.BR \-b , " \-m"
    112110These options are ignored for compatibility with other versions of
    113111.IR make .
    114112.TP 0.5i
    115 .BI "\-C " dir
     113.BR \-B , " \-\-always\-make"
     114Unconditionally make all targets.
     115.TP 0.5i
     116\fB\-C\fR \fIdir\fR, \fB\-\-directory\fR=\fIdir\fR
    116117Change to directory
    117118.I dir
     
    137138decides what to do.
    138139.TP 0.5i
    139 .B \-e
     140.BI \-\-debug "[=FLAGS]"
     141Print debugging information in addition to normal processing.
     142If the
     143.I FLAGS
     144are omitted, then the behavior is the same as if
     145.B \-d
     146was specified.
     147.I FLAGS
     148may be
     149.I a
     150for all debugging output (same as using
     151.BR \-d ),
     152.I b
     153for basic debugging,
     154.I v
     155for more verbose basic debugging,
     156.I i
     157for showing implicit rules,
     158.I j
     159for details on invocation of commands, and
     160.I m
     161for debugging while remaking makefiles.
     162.TP 0.5i
     163.BR \-e , " \-\-environment\-overrides"
    140164Give variables taken from the environment precedence
    141165over variables from makefiles.
    142166.TP 0.5i
    143 .BI "\-f " file
     167+\fB\-f\fR \fIfile\fR, \fB\-\-file\fR=\fIfile\fR, \fB\-\-makefile\fR=\fIFILE\fR
    144168Use
    145169.I file
    146170as a makefile.
    147171.TP 0.5i
    148 .B \-i
     172.BR \-i , " \-\-ignore\-errors"
    149173Ignore all errors in commands executed to remake files.
    150174.TP 0.5i
    151 .BI "\-I " dir
     175\fB\-I\fR \fIdir\fR, \fB\-\-include\-dir\fR=\fIdir\fR
    152176Specifies a directory
    153177.I dir
     
    170194flag.
    171195.TP 0.5i
    172 .BI "\-j " jobs
    173 Specifies the number of jobs (commands) to run simultaneously.
     196\fB\-j\fR [\fIjobs\fR], \fB\-\-jobs\fR[=\fIjobs\fR]
     197Specifies the number of
     198.I jobs
     199(commands) to run simultaneously.
    174200If there is more than one
    175201.B \-j
     
    181207will not limit the number of jobs that can run simultaneously.
    182208.TP 0.5i
    183 .B \-k
     209.BR \-k , " \-\-keep\-going"
    184210Continue as much as possible after an error.
    185211While the target that failed, and those that depend on it, cannot
     
    187213all the same.
    188214.TP 0.5i
    189 .B \-l
    190 .TP 0.5i
    191 .BI "\-l " load
     215\fB\-l\fR [\fIload\fR], \fB\-\-load\-average\fR[=\fIload\fR]
    192216Specifies that no new jobs (commands) should be started if there are
    193217others jobs running and the load average is at least
     
    196220With no argument, removes a previous load limit.
    197221.TP 0.5i
    198 .B \-n
     222.BR \-L , " \-\-check\-symlink\-times"
     223Use the latest mtime between symlinks and target.
     224.TP 0.5i
     225.BR \-n , " \-\-just\-print" , " \-\-dry\-run" , " \-\-recon"
    199226Print the commands that would be executed, but do not execute them.
    200227.TP 0.5i
    201 .BI "\-o " file
     228\fB\-o\fR \fIfile\fR, \fB\-\-old\-file\fR=\fIfile\fR, \fB\-\-assume\-old\fR=\fIfile\fR
    202229Do not remake the file
    203230.I file
     
    207234Essentially the file is treated as very old and its rules are ignored.
    208235.TP 0.5i
    209 .B \-p
     236.BR \-p , " \-\-print\-data\-base"
    210237Print the data base (rules and variable values) that results from
    211238reading the makefiles; then execute as usual or as otherwise
     
    219246.BI \-f /dev/null.
    220247.TP 0.5i
    221 .B \-q
     248.BR \-q , " \-\-question"
    222249``Question mode''.
    223250Do not run any commands, or print anything; just return an exit status
     
    225252otherwise.
    226253.TP 0.5i
    227 .B \-r
    228 Eliminate use of the built-in implicit rules.
     254.BR \-r , " \-\-no\-builtin\-rules"
     255Eliminate use of the built\-in implicit rules.
    229256Also clear out the default list of suffixes for suffix rules.
    230257.TP 0.5i
    231 .B \-s
     258.BR \-R , " \-\-no\-builtin\-variables"
     259Don't define any built\-in variables.
     260.TP 0.5i
     261.BR \-s , " \-\-silent" , " \-\-quiet"
    232262Silent operation; do not print the commands as they are executed.
    233263.TP 0.5i
    234 .B \-S
     264.BR \-S , " \-\-no\-keep\-going" , " \-\-stop"
    235265Cancel the effect of the
    236266.B \-k
     
    246276in MAKEFLAGS in your environment.
    247277.TP 0.5i
    248 .B \-t
     278.BR \-t , " \-\-touch"
    249279Touch files (mark them up to date without really changing them)
    250280instead of running their commands.
     
    253283.IR make .
    254284.TP 0.5i
    255 .B \-v
     285.BR \-v , " \-\-version"
    256286Print the version of the
    257287.I make
     
    259289is no warranty.
    260290.TP 0.5i
    261 .B \-w
     291.BR \-w , " \-\-print\-directory"
    262292Print a message containing the working directory
    263293before and after other processing.
     
    267297commands.
    268298.TP 0.5i
    269 .BI "\-W " file
     299.B \-\-no\-print\-directory
     300Turn off
     301.BR \-w ,
     302even if it was turned on implicitly.
     303.TP 0.5i
     304\fB\-W\fR \fIfile\fR, \fB\-\-what\-if\fR=\fIfile\fR, \fB\-\-new\-file\fR=\fIfile\fR, \fB\-\-assume\-new\fR=\fIfile\fR
    270305Pretend that the target
    271306.I file
     
    282317except that the modification time is changed only in the imagination of
    283318.IR make .
     319.TP 0.5i
     320.B \-\-warn\-undefined\-variables
     321Warn when an undefined variable is referenced.
     322.SH "EXIT STATUS"
     323GNU
     324.I make
     325exits with a status of zero if all makefiles were successfully parsed
     326and no targets that were built failed.  A status of one will be returned
     327if the
     328.B \-q
     329flag was used and
     330.I make
     331determines that a target needs to be rebuilt.  A status of two will be
     332returned if any errors were encountered.
    284333.SH "SEE ALSO"
    285334.I "The GNU Make Manual"
    286335.SH BUGS
    287336See the chapter `Problems and Bugs' in
    288 .I "The GNU Make Manual" .
     337.IR "The GNU Make Manual" .
    289338.SH AUTHOR
    290339This manual page contributed by Dennis Morse of Stanford University.
    291 It has been reworked by Roland McGrath.
     340It has been reworked by Roland McGrath.  Further updates contributed by
     341Mike Frysinger.
     342.SH "COPYRIGHT"
     343Copyright (C) 1992, 1993, 1996, 1999 Free Software Foundation, Inc.
     344This file is part of GNU
     345.IR make .
     346.LP
     347GNU
     348.I make
     349is free software; you can redistribute it and/or modify it under the
     350terms of the GNU General Public License as published by the Free
     351Software Foundation; either version 2, or (at your option) any later
     352version.
     353.LP
     354GNU
     355.I make
     356is distributed in the hope that it will be useful, but WITHOUT ANY
     357WARRANTY; without even the implied warranty of MERCHANTABILITY or
     358FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
     359for more details.
     360.LP
     361You should have received a copy of the GNU General Public License
     362along with GNU
     363.IR make ;
     364see the file COPYING.  If not, write to the Free Software Foundation,
     365Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
  • vendor/gnumake/current/make.h

    r280 r501  
    11/* Miscellaneous global declarations and portability cruft for GNU Make.
    2 Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1999,
    3 2002 Free Software Foundation, Inc.
     2Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
     31998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software
     4Foundation, Inc.
    45This file is part of GNU Make.
    56
    6 GNU Make is free software; you can redistribute it and/or modify
    7 it under the terms of the GNU General Public License as published by
    8 the Free Software Foundation; either version 2, or (at your option)
    9 any later version.
    10 
    11 GNU Make is distributed in the hope that it will be useful,
    12 but WITHOUT ANY WARRANTY; without even the implied warranty of
    13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    14 GNU General Public License for more details.
    15 
    16 You should have received a copy of the GNU General Public License
    17 along with GNU Make; see the file COPYING.  If not, write to
    18 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    19 Boston, MA 02111-1307, USA.  */
     7GNU Make is free software; you can redistribute it and/or modify it under the
     8terms of the GNU General Public License as published by the Free Software
     9Foundation; either version 2, or (at your option) any later version.
     10
     11GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     12WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     13A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     14
     15You should have received a copy of the GNU General Public License along with
     16GNU Make; see the file COPYING.  If not, write to the Free Software
     17Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
    2018
    2119/* We use <config.h> instead of "config.h" so that a compilation
     
    4341
    4442/* Use prototypes if available.  */
    45 #if defined (__cplusplus) || (defined (__STDC__) && __STDC__)
     43#if defined (__cplusplus) || defined (__STDC__)
    4644# undef  PARAMS
    4745# define PARAMS(protos)  protos
     
    277275# endif
    278276
    279 #endif  /* ANSI_STRING.  */
    280 #undef  ANSI_STRING
    281 
    282277/* SCO Xenix has a buggy macro definition in <string.h>.  */
    283278#undef  strerror
    284 
    285 #if !defined(ANSI_STRING) && !defined(__DECC)
     279#if !defined(__DECC)
    286280extern char *strerror PARAMS ((int errnum));
    287281#endif
     282
     283#endif  /* !ANSI_STRING.  */
     284#undef  ANSI_STRING
    288285
    289286#if HAVE_INTTYPES_H
     
    359356#endif
    360357
     358/* This is needed for getcwd() and chdir().  */
     359#if defined(_MSC_VER) || defined(__BORLANDC__)
     360# include <direct.h>
     361#endif
     362
    361363#ifdef WINDOWS32
    362364# include <fcntl.h>
     
    379381struct floc
    380382  {
    381     char *filenm;
     383    const char *filenm;
    382384    unsigned long lineno;
    383385  };
     
    423425extern char *end_of_token PARAMS ((const char *));
    424426extern void collapse_continuations PARAMS ((char *));
    425 extern void remove_comments PARAMS((char *));
    426427extern char *lindex PARAMS ((const char *, const char *, int));
    427428extern int alpha_compare PARAMS ((const void *, const void *));
    428429extern void print_spaces PARAMS ((unsigned int));
    429 extern char *find_char_unquote PARAMS ((char *, int, int, int));
    430430extern char *find_percent PARAMS ((char *));
    431431extern FILE *open_tmpfile PARAMS ((char **, const char *));
     
    461461extern void child_access PARAMS ((void));
    462462
    463 extern char *
    464 strip_whitespace PARAMS ((const char **begpp, const char **endpp));
    465 
     463extern void close_stdout PARAMS ((void));
     464
     465extern char *strip_whitespace PARAMS ((const char **begpp, const char **endpp));
     466
     467/* String caching  */
     468extern void strcache_init PARAMS ((void));
     469extern void strcache_print_stats PARAMS ((const char *prefix));
     470extern int strcache_iscached PARAMS ((const char *str));
     471extern const char *strcache_add PARAMS ((const char *str));
     472extern const char *strcache_add_len PARAMS ((const char *str, int len));
     473extern int strcache_setbufsize PARAMS ((int size));
    466474
    467475#ifdef  HAVE_VFORK_H
     
    484492# if !defined(VMS) && !defined(__DECC)
    485493extern char *getcwd ();
    486 #endif
     494# endif
    487495#else
    488496extern char *getwd ();
     
    491499
    492500extern const struct floc *reading_file;
     501extern const struct floc **expanding_var;
    493502
    494503extern char **environ;
     
    499508extern int print_version_flag, print_directory_flag, check_symlink_flag;
    500509extern int warn_undefined_variables_flag, posix_pedantic, not_parallel;
    501 extern int clock_skew_detected, rebuilding_makefiles;
     510extern int second_expansion, clock_skew_detected, rebuilding_makefiles;
    502511
    503512/* can we run commands via 'sh -c xxx' or must we use batch files? */
  • vendor/gnumake/current/make.lnk

    r54 r501  
    1 FROM LIB:cres.o "commands.o"+"job.o"+"dir.o"+"file.o"+"misc.o"+"main.o"+"read.o"+"remake.o"+"rule.o"+"implicit.o"+"default.o"+"variable.o"+"expand.o"+"function.o"+"vpath.o"+"version.o"+"ar.o"+"arscan.o"+"signame.o"+"remote-stub.o"+"getopt.o"+"getopt1.o"+"alloca.o"+"amiga.o"
     1FROM LIB:cres.o "commands.o"+"job.o"+"dir.o"+"file.o"+"misc.o"+"main.o"+"read.o"+"remake.o"+"rule.o"+"implicit.o"+"default.o"+"variable.o"+"expand.o"+"function.o"+"vpath.o"+"version.o"+"ar.o"+"arscan.o"+"signame.o"+"remote-stub.o"+"getopt.o"+"getopt1.o"+"alloca.o"+"amiga.o"+"hash.o"+"strcache.o"
    22TO "make.new"
    33LIB glob/glob.lib LIB:sc.lib LIB:amiga.lib
  • vendor/gnumake/current/makefile.com

    r54 r501  
    1313$! hb
    1414$! But don't ask Martin Zinser about the lines, I added/changed.
    15 $! In case of an error do some cleanup 
     15$! In case of an error do some cleanup
    1616$ on error then $ goto cleanup
    1717$! in case somebody set up her/his own symbol for cc
     
    3434$   ccopt = ""
    3535$  else
    36 $   ccopt = "/decc/prefix=all"
     36$   ccopt = "/decc/prefix=(all,except=(globfree,glob))"
    3737$   if f$trnlnm("SYS").eqs.""
    3838$    then
     
    6969$ filelist = "alloca ar arscan commands default dir expand file function " + -
    7070             "hash implicit job main misc read remake remote-stub rule " + -
    71              "signame variable version vmsfunctions vmsify vpath " + - 
    72              "[.glob]glob [.glob]fnmatch getopt1 getopt"
     71             "signame variable version vmsfunctions vmsify vpath " + -
     72             "[.glob]glob [.glob]fnmatch getopt1 getopt strcache"
    7373$ copy config.h-vms config.h
    7474$ n=0
     
    9696$ exit
    9797$!
    98 $!------------------------------------------------------------------------------
     98$!-----------------------------------------------------------------------------
    9999$!
    100100$! Check if this is a define relating to the properties of the C/C++
     
    102102$!
    103103$CHECK_CC_QUAL:
    104 $ open/write tmpc 'tc 
     104$ open/write tmpc 'tc
    105105$ ccqual = "/warn=(disable=questcompare)"
    106106$ write tmpc "#include <stdio.h>"
    107107$ write tmpc "unsigned int i = 1;"
    108108$ write tmpc "int main(){"
    109 $ write tmpc "if (i < 0){printf(""Mission impossible\n"");}}" 
     109$ write tmpc "if (i < 0){printf(""Mission impossible\n"");}}"
    110110$ close tmpc
    111111$ gosub cc_qual_check
    112112$ return
    113113$!
    114 $!------------------------------------------------------------------------------
     114$!-----------------------------------------------------------------------------
    115115$!
    116116$! Check for properties of C/C++ compiler
     
    123123$ set message/fac/ident/sever/text
    124124$ delete/nolog 'tmpnam'.*;*
    125 $ if cc_qual then ccopt = ccopt + ccqual 
     125$ if cc_qual then ccopt = ccopt + ccqual
    126126$ return
    127 $!------------------------------------------------------------------------------
     127$!-----------------------------------------------------------------------------
    128128$!
    129129$ compileit : subroutine
     
    132132$ if ploc .lt. f$length(p1) then filnam=f$extract(ploc+1,100,p1)
    133133$ write optf "''filnam'"
    134 $ cc'ccopt'/include=([],[.glob]) - 
    135   /define=("allocated_variable_expand_for_file=alloc_var_expand_for_file","unlink=remove","HAVE_CONFIG_H","VMS") - 
     134$ cc'ccopt'/include=([],[.glob]) -
     135  /define=("allocated_variable_expand_for_file=alloc_var_expand_for_file","unlink=remove","HAVE_CONFIG_H","VMS") -
    136136  'p1'
    137137$ exit
    138138$ endsubroutine : compileit
     139$!
     140$!-----------------------------------------------------------------------------
     141$!Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
     142$!2006 Free Software Foundation, Inc.
     143$!This file is part of GNU Make.
     144$!
     145$!GNU Make is free software; you can redistribute it and/or modify it under the
     146$!terms of the GNU General Public License as published by the Free Software
     147$!Foundation; either version 2, or (at your option) any later version.
     148$!
     149$!GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     150$!WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     151$!A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     152$!
     153$!You should have received a copy of the GNU General Public License along with
     154$!GNU Make; see the file COPYING.  If not, write to the Free Software
     155$!Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  • vendor/gnumake/current/makefile.vms

    r280 r501  
    1 # Copyright (C) 1988, 1989, 1996, 1997 Free Software Foundation, Inc.
     1# -*-Makefile-*- to build GNU make on VMS
     2#
     3# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
     4# 2006 Free Software Foundation, Inc.
    25# This file is part of GNU Make.
    36#
     7# GNU Make is free software; you can redistribute it and/or modify it under the
     8# terms of the GNU General Public License as published by the Free Software
     9# Foundation; either version 2, or (at your option) any later version.
     10#
     11# GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     12# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     13# A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     14#
     15# You should have received a copy of the GNU General Public License along with
     16# GNU Make; see the file COPYING.  If not, write to the Free Software
     17# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
     18
    419# VMS extensions from GNU Make 3.60 imported by
    520#  Klaus Kämpf ([email protected])
     
    722# Modified for version 3.80 by [email protected]
    823# Modified for version 3.81 by Hartmut Becker
    9 #
    10 # GNU Make is free software; you can redistribute it and/or modify
    11 # it under the terms of the GNU General Public License as published by
    12 # the Free Software Foundation; either version 2, or (at your option)
    13 # any later version.
    14 #
    15 # GNU Make is distributed in the hope that it will be useful,
    16 # but WITHOUT ANY WARRANTY; without even the implied warranty of
    17 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    18 # GNU General Public License for more details.
    19 #
    20 # You should have received a copy of the GNU General Public License
    21 # along with GNU Make; see the file COPYING.  If not, write to
    22 # the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    23 # Boston, MA 02111-1307, USA.
    2424
    2525CC = cc
     
    3333
    3434ifeq ($(CC),cc)
    35 CFLAGS = $(defines) /include=([],[.glob])/prefix=(all,except=(glob,globfree))/standard=relaxed
     35CFLAGS = $(defines) /include=([],[.glob])/prefix=(all,except=(glob,globfree))/standard=relaxed/warn=(disable=questcompare)
    3636else
    3737CFLAGS = $(defines) /include=([],[.glob])
     
    9191objs = commands.obj,job.obj,dir.obj,file.obj,misc.obj,hash.obj,\
    9292       main.obj,read.obj,remake.obj,rule.obj,implicit.obj,\
    93        default.obj,variable.obj,expand.obj,function.obj,\
     93       default.obj,variable.obj,expand.obj,function.obj,strcache.obj,\
    9494       vpath.obj,version.obj$(ARCHIVES)$(ALLOCA)$(extras)$(getopt)$(glob)
    95 srcs = commands.c job.c dir.c file.c misc.c  hash.c\
     95srcs = commands.c job.c dir.c file.c misc.c  hash.c \
    9696        main.c read.c remake.c rule.c implicit.c \
    97         default.c variable.c expand.c function.c \
     97        default.c variable.c expand.c function.c strcache.c \
    9898        vpath.c version.c vmsfunctions.c vmsify.c $(ARCHIVES_SRC) $(ALLOCASRC) \
    9999        commands.h dep.h filedef.h job.h make.h rule.h variable.h
     
    117117# Automatically generated dependencies.
    118118commands.obj: commands.c make.h dep.h commands.h filedef.h variable.h job.h
    119 job.obj: job.c make.h commands.h job.h filedef.h variable.h
     119job.obj: job.c vmsjobs.c make.h commands.h job.h filedef.h variable.h
    120120dir.obj: dir.c make.h
    121121file.obj: file.c make.h commands.h dep.h filedef.h variable.h
    122122misc.obj: misc.c make.h dep.h
    123123hash.obj: hash.c make.h hash.h
     124strcache.obj: strcache.c make.h hash.h
    124125main.obj: main.c make.h commands.h dep.h filedef.h variable.h job.h
    125126read.obj: read.c make.h commands.h dep.h filedef.h variable.h
  • vendor/gnumake/current/misc.c

    r280 r501  
    11/* Miscellaneous generic support functions for GNU Make.
    2 Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1997,
    3 2002 Free Software Foundation, Inc.
     2Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
     31998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software
     4Foundation, Inc.
    45This file is part of GNU Make.
    56
    6 GNU Make is free software; you can redistribute it and/or modify
    7 it under the terms of the GNU General Public License as published by
    8 the Free Software Foundation; either version 2, or (at your option)
    9 any later version.
    10 
    11 GNU Make is distributed in the hope that it will be useful,
    12 but WITHOUT ANY WARRANTY; without even the implied warranty of
    13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    14 GNU General Public License for more details.
    15 
    16 You should have received a copy of the GNU General Public License
    17 along with GNU Make; see the file COPYING.  If not, write to
    18 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    19 Boston, MA 02111-1307, USA.  */
     7GNU Make is free software; you can redistribute it and/or modify it under the
     8terms of the GNU General Public License as published by the Free Software
     9Foundation; either version 2, or (at your option) any later version.
     10
     11GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     12WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     13A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     14
     15You should have received a copy of the GNU General Public License along with
     16GNU Make; see the file COPYING.  If not, write to the Free Software
     17Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
    2018
    2119#include "make.h"
     
    153151
    154152
    155 /* Remove comments from LINE.
    156    This is done by copying the text at LINE onto itself.  */
    157 
    158 void
    159 remove_comments (char *line)
    160 {
    161   char *comment;
    162 
    163   comment = find_char_unquote (line, '#', 0, 0);
    164 
    165   if (comment != 0)
    166     /* Cut off the line at the #.  */
    167     *comment = '\0';
    168 }
    169 
    170 
    171153/* Print N spaces (used in debug for target-depth).  */
    172154
     
    506488
    507489
     490
     491/* Allocate a new `struct dep' with all fields initialized to 0.   */
     492
     493struct dep *
     494alloc_dep ()
     495{
     496  struct dep *d = (struct dep *) xmalloc (sizeof (struct dep));
     497  bzero ((char *) d, sizeof (struct dep));
     498  return d;
     499}
     500
     501
     502/* Free `struct dep' along with `name' and `stem'.   */
     503
     504void
     505free_dep (struct dep *d)
     506{
     507  if (d->name != 0)
     508    free (d->name);
     509
     510  if (d->stem != 0)
     511    free (d->stem);
     512
     513  free ((char *)d);
     514}
     515
    508516/* Copy a chain of `struct dep', making a new chain
    509517   with the same contents as the old one.  */
    510518
    511519struct dep *
    512 copy_dep_chain (struct dep *d)
     520copy_dep_chain (const struct dep *d)
    513521{
    514522  register struct dep *c;
     
    520528      c = (struct dep *) xmalloc (sizeof (struct dep));
    521529      bcopy ((char *) d, (char *) c, sizeof (struct dep));
     530
    522531      if (c->name != 0)
    523532        c->name = xstrdup (c->name);
     533      if (c->stem != 0)
     534        c->stem = xstrdup (c->stem);
     535
    524536      c->next = 0;
    525537      if (firstnew == 0)
     
    534546}
    535547
     548/* Free a chain of 'struct dep'.  */
     549
     550void
     551free_dep_chain (struct dep *d)
     552{
     553  while (d != 0)
     554    {
     555      struct dep *df = d;
     556      d = d->next;
     557      free_dep (df);
     558    }
     559}
     560
    536561
    537562/* Free a chain of `struct nameseq'. Each nameseq->name is freed
    538    as well.  Can be used on `struct dep' chains.*/
     563   as well.  For `struct dep' chains use free_dep_chain.  */
    539564
    540565void
     
    621646
    622647static void
    623 log_access (char *flavor)
     648log_access (const char *flavor)
    624649{
    625650  if (! ISDB (DB_JOBS))
     
    836861}
    837862#endif
     863
     864
     865
     866/* This code is stolen from gnulib.
     867   If/when we abandon the requirement to work with K&R compilers, we can
     868   remove this (and perhaps other parts of GNU make!) and migrate to using
     869   gnulib directly.
     870
     871   This is called only through atexit(), which means die() has already been
     872   invoked.  So, call exit() here directly.  Apparently that works...?
     873*/
     874
     875/* Close standard output, exiting with status 'exit_failure' on failure.
     876   If a program writes *anything* to stdout, that program should close
     877   stdout and make sure that it succeeds before exiting.  Otherwise,
     878   suppose that you go to the extreme of checking the return status
     879   of every function that does an explicit write to stdout.  The last
     880   printf can succeed in writing to the internal stream buffer, and yet
     881   the fclose(stdout) could still fail (due e.g., to a disk full error)
     882   when it tries to write out that buffered data.  Thus, you would be
     883   left with an incomplete output file and the offending program would
     884   exit successfully.  Even calling fflush is not always sufficient,
     885   since some file systems (NFS and CODA) buffer written/flushed data
     886   until an actual close call.
     887
     888   Besides, it's wasteful to check the return value from every call
     889   that writes to stdout -- just let the internal stream state record
     890   the failure.  That's what the ferror test is checking below.
     891
     892   It's important to detect such failures and exit nonzero because many
     893   tools (most notably `make' and other build-management systems) depend
     894   on being able to detect failure in other tools via their exit status.  */
     895
     896void
     897close_stdout (void)
     898{
     899  int prev_fail = ferror (stdout);
     900  int fclose_fail = fclose (stdout);
     901
     902  if (prev_fail || fclose_fail)
     903    {
     904      if (fclose_fail)
     905        error (NILF, _("write error: %s"), strerror (errno));
     906      else
     907        error (NILF, _("write error"));
     908      exit (EXIT_FAILURE);
     909    }
     910}
  • vendor/gnumake/current/po/ChangeLog

    r280 r501  
     12006-01-28  Paul D. Smith  <[email protected]>
     2
     3        * LINGUAS: Added new translation for Vietnamese (vi).
     4
     52005-07-14  Paul D. Smith  <[email protected]>
     6
     7        * LINGUAS: Added new translation for Indonesian (id).
     8
    192005-05-09  Paul D. Smith  <[email protected]>
    210
     
    4452
    4553        * POTFILES.in, LINGUAS, Makevars: Created.
     54
     55
     56Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
     57This file is part of GNU Make.
     58
     59GNU Make is free software; you can redistribute it and/or modify it under the
     60terms of the GNU General Public License as published by the Free Software
     61Foundation; either version 2, or (at your option) any later version.
     62
     63GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     64WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     65A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     66
     67You should have received a copy of the GNU General Public License along with
     68GNU Make; see the file COPYING.  If not, write to the Free Software
     69Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  • vendor/gnumake/current/po/LINGUAS

    r280 r501  
    1 # Set of available languages: 20 languages
     1# Set of available languages: 23 languages
    22
    3 be da de es fi fr ga gl he hr ja ko nl pl pt_BR ru rw sv tr uk zh_CN
     3be da de es fi fr ga gl he hr id ja ko nl pl pt_BR ru rw sv tr uk vi zh_CN
    44
    55# Can't seem to get en@quot and en@boldquot to build properly?
  • vendor/gnumake/current/po/Makevars

    r53 r501  
     1# This is a -*-Makefile-*-
     2# Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
     3# This file is part of GNU Make.
     4#
     5# GNU Make is free software; you can redistribute it and/or modify it under the
     6# terms of the GNU General Public License as published by the Free Software
     7# Foundation; either version 2, or (at your option) any later version.
     8#
     9# GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     10# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     11# A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     12#
     13# You should have received a copy of the GNU General Public License along with
     14# GNU Make; see the file COPYING.  If not, write to the Free Software
     15# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
     16
     17
    118# Makefile variables for PO directory in any package using GNU gettext.
    219
  • vendor/gnumake/current/po/POTFILES.in

    r280 r501  
    11# List of source files containing translatable strings.
    2 # Copyright (C) 2002 Free Software Foundation, Inc.
     2# Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software
     3# Foundation, Inc.
     4# This file is part of GNU Make.
     5#
     6# GNU Make is free software; you can redistribute it and/or modify it under the
     7# terms of the GNU General Public License as published by the Free Software
     8# Foundation; either version 2, or (at your option) any later version.
     9#
     10# GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     11# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     12# A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     13#
     14# You should have received a copy of the GNU General Public License along with
     15# GNU Make; see the file COPYING.  If not, write to the Free Software
     16# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
    317
    418ar.c
     
    2034rule.c
    2135signame.c
     36strcache.c
    2237variable.c
    2338variable.h
  • vendor/gnumake/current/po/make.pot

    r152 r501  
    99"Project-Id-Version: PACKAGE VERSION\n"
    1010"Report-Msgid-Bugs-To: [email protected]\n"
    11 "POT-Creation-Date: 2004-03-06 03:08-0500\n"
     11"POT-Creation-Date: 2006-04-01 01:40-0500\n"
    1212"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
    1313"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
     
    1717"Content-Transfer-Encoding: 8bit\n"
    1818
    19 #: ar.c:55
     19#: ar.c:53
    2020#, c-format
    2121msgid "attempt to use unsupported feature: `%s'"
    2222msgstr ""
    2323
    24 #: ar.c:139
     24#: ar.c:137
    2525msgid "touch archive member is not available on VMS"
    2626msgstr ""
    2727
    28 #: ar.c:170
     28#: ar.c:168
    2929#, c-format
    3030msgid "touch: Archive `%s' does not exist"
    3131msgstr ""
    3232
    33 #: ar.c:173
     33#: ar.c:171
    3434#, c-format
    3535msgid "touch: `%s' is not a valid archive"
    3636msgstr ""
    3737
    38 #: ar.c:180
     38#: ar.c:178
    3939#, c-format
    4040msgid "touch: Member `%s' does not exist in `%s'"
    4141msgstr ""
    4242
    43 #: ar.c:187
     43#: ar.c:185
    4444#, c-format
    4545msgid "touch: Bad return code from ar_member_touch on `%s'"
     
    8080msgstr ""
    8181
    82 #: commands.c:415
     82#: commands.c:422
    8383msgid "*** Break.\n"
    8484msgstr ""
    8585
    86 #: commands.c:509
     86#: commands.c:545
    8787#, c-format
    8888msgid "*** [%s] Archive member `%s' may be bogus; not deleted"
    8989msgstr ""
    9090
    91 #: commands.c:512
     91#: commands.c:548
    9292#, c-format
    9393msgid "*** Archive member `%s' may be bogus; not deleted"
    9494msgstr ""
    9595
    96 #: commands.c:525
     96#: commands.c:561
    9797#, c-format
    9898msgid "*** [%s] Deleting file `%s'"
    9999msgstr ""
    100100
    101 #: commands.c:527
     101#: commands.c:563
    102102#, c-format
    103103msgid "*** Deleting file `%s'"
    104104msgstr ""
    105105
    106 #: commands.c:563
     106#: commands.c:599
    107107msgid "#  commands to execute"
    108108msgstr ""
    109109
    110 #: commands.c:566
     110#: commands.c:602
    111111msgid " (built-in):"
    112112msgstr ""
    113113
    114 #: commands.c:568
     114#: commands.c:604
    115115#, c-format
    116116msgid " (from `%s', line %lu):\n"
    117117msgstr ""
    118118
    119 #: dir.c:967
     119#: dir.c:983
    120120msgid ""
    121121"\n"
     
    123123msgstr ""
    124124
    125 #: dir.c:979
     125#: dir.c:995
    126126#, c-format
    127127msgid "# %s: could not be stat'd.\n"
    128128msgstr ""
    129129
    130 #: dir.c:983
     130#: dir.c:999
    131131#, c-format
    132132msgid "# %s (key %s, mtime %d): could not be opened.\n"
    133133msgstr ""
    134134
    135 #: dir.c:987
     135#: dir.c:1003
    136136#, c-format
    137137msgid "# %s (device %d, inode [%d,%d,%d]): could not be opened.\n"
    138138msgstr ""
    139139
    140 #: dir.c:992
     140#: dir.c:1008
    141141#, c-format
    142142msgid "# %s (device %ld, inode %ld): could not be opened.\n"
    143143msgstr ""
    144144
    145 #: dir.c:1019
     145#: dir.c:1035
    146146#, c-format
    147147msgid "# %s (key %s, mtime %d): "
    148148msgstr ""
    149149
    150 #: dir.c:1023
     150#: dir.c:1039
    151151#, c-format
    152152msgid "# %s (device %d, inode [%d,%d,%d]): "
    153153msgstr ""
    154154
    155 #: dir.c:1028
     155#: dir.c:1044
    156156#, c-format
    157157msgid "# %s (device %ld, inode %ld): "
    158158msgstr ""
    159159
    160 #: dir.c:1034 dir.c:1055
     160#: dir.c:1050 dir.c:1071
    161161msgid "No"
    162162msgstr ""
    163163
    164 #: dir.c:1037 dir.c:1058
     164#: dir.c:1053 dir.c:1074
    165165msgid " files, "
    166166msgstr ""
    167167
    168 #: dir.c:1039 dir.c:1060
     168#: dir.c:1055 dir.c:1076
    169169msgid "no"
    170170msgstr ""
    171171
    172 #: dir.c:1042
     172#: dir.c:1058
    173173msgid " impossibilities"
    174174msgstr ""
    175175
    176 #: dir.c:1046
     176#: dir.c:1062
    177177msgid " so far."
    178178msgstr ""
    179179
    180 #: dir.c:1063
     180#: dir.c:1079
    181181#, c-format
    182182msgid " impossibilities in %lu directories.\n"
    183183msgstr ""
    184184
    185 #: expand.c:107
     185#: expand.c:128
    186186#, c-format
    187187msgid "Recursive variable `%s' references itself (eventually)"
    188188msgstr ""
    189189
    190 #: expand.c:248
     190#: expand.c:266
    191191msgid "unterminated variable reference"
    192192msgstr ""
    193193
    194 #: file.c:257
     194#: file.c:270
    195195#, c-format
    196196msgid "Commands were specified for file `%s' at %s:%lu,"
    197197msgstr ""
    198198
    199 #: file.c:262
     199#: file.c:275
    200200#, c-format
    201201msgid "Commands for file `%s' were found by implicit rule search,"
    202202msgstr ""
    203203
    204 #: file.c:265
     204#: file.c:278
    205205#, c-format
    206206msgid "but `%s' is now considered the same file as `%s'."
    207207msgstr ""
    208208
    209 #: file.c:268
     209#: file.c:281
    210210#, c-format
    211211msgid "Commands for `%s' will be ignored in favor of those for `%s'."
    212212msgstr ""
    213213
    214 #: file.c:288
     214#: file.c:301
    215215#, c-format
    216216msgid "can't rename single-colon `%s' to double-colon `%s'"
    217217msgstr ""
    218218
    219 #: file.c:293
     219#: file.c:306
    220220#, c-format
    221221msgid "can't rename double-colon `%s' to single-colon `%s'"
    222222msgstr ""
    223223
    224 #: file.c:364
     224#: file.c:381
    225225#, c-format
    226226msgid "*** Deleting intermediate file `%s'"
    227227msgstr ""
    228228
    229 #: file.c:368
     229#: file.c:385
    230230msgid "Removing intermediate files...\n"
    231231msgstr ""
    232232
    233 #: file.c:554
     233#: file.c:781
    234234#, c-format
    235235msgid "%s: Timestamp out of range; substituting %s"
    236236msgstr ""
    237237
    238 #: file.c:555
     238#: file.c:782
    239239msgid "Current time"
    240240msgstr ""
    241241
    242 #: file.c:654
     242#: file.c:881
    243243msgid "# Not a target:"
    244244msgstr ""
    245245
    246 #: file.c:676
     246#: file.c:903
    247247msgid "#  Precious file (prerequisite of .PRECIOUS)."
    248248msgstr ""
    249249
    250 #: file.c:678
     250#: file.c:905
    251251msgid "#  Phony target (prerequisite of .PHONY)."
    252252msgstr ""
    253253
    254 #: file.c:680
     254#: file.c:907
    255255msgid "#  Command-line target."
    256256msgstr ""
    257257
    258 #: file.c:682
    259 msgid "#  A default or MAKEFILES makefile."
    260 msgstr ""
    261 
    262 #: file.c:684
     258#: file.c:909
     259msgid "#  A default, MAKEFILES, or -include/sinclude makefile."
     260msgstr ""
     261
     262#: file.c:911
    263263msgid "#  Implicit rule search has been done."
    264264msgstr ""
    265265
    266 #: file.c:685
     266#: file.c:912
    267267msgid "#  Implicit rule search has not been done."
    268268msgstr ""
    269269
    270 #: file.c:687
     270#: file.c:914
    271271#, c-format
    272272msgid "#  Implicit/static pattern stem: `%s'\n"
    273273msgstr ""
    274274
    275 #: file.c:689
     275#: file.c:916
    276276msgid "#  File is an intermediate prerequisite."
    277277msgstr ""
    278278
    279 #: file.c:692
     279#: file.c:919
    280280msgid "#  Also makes:"
    281281msgstr ""
    282282
    283 #: file.c:698
     283#: file.c:925
    284284msgid "#  Modification time never checked."
    285285msgstr ""
    286286
    287 #: file.c:700
     287#: file.c:927
    288288msgid "#  File does not exist."
    289289msgstr ""
    290290
    291 #: file.c:702
     291#: file.c:929
    292292msgid "#  File is very old."
    293293msgstr ""
    294294
    295 #: file.c:707
     295#: file.c:934
    296296#, c-format
    297297msgid "#  Last modified %s\n"
    298298msgstr ""
    299299
    300 #: file.c:710
     300#: file.c:937
    301301msgid "#  File has been updated."
    302302msgstr ""
    303303
    304 #: file.c:710
     304#: file.c:937
    305305msgid "#  File has not been updated."
    306306msgstr ""
    307307
    308 #: file.c:714
     308#: file.c:941
    309309msgid "#  Commands currently running (THIS IS A BUG)."
    310310msgstr ""
    311311
    312 #: file.c:717
     312#: file.c:944
    313313msgid "#  Dependencies commands running (THIS IS A BUG)."
    314314msgstr ""
    315315
    316 #: file.c:726
     316#: file.c:953
    317317msgid "#  Successfully updated."
    318318msgstr ""
    319319
    320 #: file.c:730
     320#: file.c:957
    321321msgid "#  Needs to be updated (-q is set)."
    322322msgstr ""
    323323
    324 #: file.c:733
     324#: file.c:960
    325325msgid "#  Failed to be updated."
    326326msgstr ""
    327327
    328 #: file.c:736
     328#: file.c:963
    329329msgid "#  Invalid value in `update_status' member!"
    330330msgstr ""
    331331
    332 #: file.c:743
     332#: file.c:970
    333333msgid "#  Invalid value in `command_state' member!"
    334334msgstr ""
    335335
    336 #: file.c:762
     336#: file.c:989
    337337msgid ""
    338338"\n"
     
    340340msgstr ""
    341341
    342 #: file.c:766
     342#: file.c:993
    343343msgid ""
    344344"\n"
     
    347347msgstr ""
    348348
    349 #: function.c:721
     349#: function.c:759
    350350msgid "non-numeric first argument to `word' function"
    351351msgstr ""
    352352
    353 #: function.c:725
     353#: function.c:764
    354354msgid "first argument to `word' function must be greater than 0"
    355355msgstr ""
    356356
    357 #: function.c:746
     357#: function.c:785
    358358msgid "non-numeric first argument to `wordlist' function"
    359359msgstr ""
    360360
    361 #: function.c:748
     361#: function.c:787
    362362msgid "non-numeric second argument to `wordlist' function"
    363363msgstr ""
    364364
    365 #: function.c:1295
    366 #, c-format
    367 msgid "create_child_process: DuplicateHandle(In) failed (e=%d)\n"
    368 msgstr ""
    369 
    370 #: function.c:1306
    371 #, c-format
    372 msgid "create_child_process: DuplicateHandle(Err) failed (e=%d)\n"
    373 msgstr ""
    374 
    375 #: function.c:1311
    376 #, c-format
    377 msgid "CreatePipe() failed (e=%d)\n"
    378 msgstr ""
    379 
    380 #: function.c:1316
     365#: function.c:1453
     366#, c-format
     367msgid "create_child_process: DuplicateHandle(In) failed (e=%ld)\n"
     368msgstr ""
     369
     370#: function.c:1464
     371#, c-format
     372msgid "create_child_process: DuplicateHandle(Err) failed (e=%ld)\n"
     373msgstr ""
     374
     375#: function.c:1469
     376#, c-format
     377msgid "CreatePipe() failed (e=%ld)\n"
     378msgstr ""
     379
     380#: function.c:1474
    381381msgid "windows32_openpipe (): process_init_fd() failed\n"
    382382msgstr ""
    383383
    384 #: function.c:1566
     384#: function.c:1725
    385385#, c-format
    386386msgid "Cleaning up temporary batch file %s\n"
    387387msgstr ""
    388388
    389 #: function.c:1784
    390 #, c-format
    391 msgid "Insufficient number of arguments (%d) to function `%s'"
    392 msgstr ""
    393 
    394 #: function.c:1795
    395 #, c-format
    396 msgid "Unimplemented on this platform: function `%s'"
    397 msgstr ""
    398 
    399 #: function.c:1846
     389#: function.c:2101
     390#, c-format
     391msgid "insufficient number of arguments (%d) to function `%s'"
     392msgstr ""
     393
     394#: function.c:2113
     395#, c-format
     396msgid "unimplemented on this platform: function `%s'"
     397msgstr ""
     398
     399#: function.c:2163
    400400#, c-format
    401401msgid "unterminated call to function `%s': missing `%c'"
     
    457457msgstr ""
    458458
    459 #: hash.c:52
     459#: hash.c:51
    460460#, c-format
    461461msgid "can't allocate %ld bytes for hash table: memory exhausted"
    462462msgstr ""
    463463
    464 #: hash.c:283
     464#: hash.c:282
    465465#, c-format
    466466msgid "Load=%ld/%ld=%.0f%%, "
    467467msgstr ""
    468468
     469#: hash.c:284
     470#, c-format
     471msgid "Rehash=%d, "
     472msgstr ""
     473
    469474#: hash.c:285
    470475#, c-format
    471 msgid "Rehash=%d, "
    472 msgstr ""
    473 
    474 #: hash.c:286
    475 #, c-format
    476476msgid "Collisions=%ld/%ld=%.0f%%"
    477477msgstr ""
    478478
    479 #: implicit.c:38
     479#: implicit.c:41
    480480#, c-format
    481481msgid "Looking for an implicit rule for `%s'.\n"
    482482msgstr ""
    483483
    484 #: implicit.c:54
     484#: implicit.c:57
    485485#, c-format
    486486msgid "Looking for archive-member implicit rule for `%s'.\n"
    487487msgstr ""
    488488
    489 #: implicit.c:199
     489#: implicit.c:319
    490490msgid "Avoiding implicit rule recursion.\n"
    491491msgstr ""
    492492
    493 #: implicit.c:337
     493#: implicit.c:476
    494494#, c-format
    495495msgid "Trying pattern rule with stem `%.*s'.\n"
    496496msgstr ""
    497497
    498 #: implicit.c:378
     498#: implicit.c:667
    499499#, c-format
    500500msgid "Rejecting impossible implicit prerequisite `%s'.\n"
    501501msgstr ""
    502502
    503 #: implicit.c:379
     503#: implicit.c:668
    504504#, c-format
    505505msgid "Rejecting impossible rule prerequisite `%s'.\n"
    506506msgstr ""
    507507
    508 #: implicit.c:389
     508#: implicit.c:678
    509509#, c-format
    510510msgid "Trying implicit prerequisite `%s'.\n"
    511511msgstr ""
    512512
    513 #: implicit.c:390
     513#: implicit.c:679
    514514#, c-format
    515515msgid "Trying rule prerequisite `%s'.\n"
    516516msgstr ""
    517517
    518 #: implicit.c:412
     518#: implicit.c:710
    519519#, c-format
    520520msgid "Found prerequisite `%s' as VPATH `%s'\n"
    521521msgstr ""
    522522
    523 #: implicit.c:430
     523#: implicit.c:730
    524524#, c-format
    525525msgid "Looking for a rule with intermediate file `%s'.\n"
    526526msgstr ""
    527527
    528 #: job.c:300
     528#: job.c:321
     529msgid "Cannot create a temporary file\n"
     530msgstr ""
     531
     532#: job.c:388
    529533#, c-format
    530534msgid "*** [%s] Error 0x%x (ignored)"
    531535msgstr ""
    532536
    533 #: job.c:301
     537#: job.c:389
    534538#, c-format
    535539msgid "*** [%s] Error 0x%x"
    536540msgstr ""
    537541
    538 #: job.c:305
     542#: job.c:393
    539543#, c-format
    540544msgid "[%s] Error %d (ignored)"
    541545msgstr ""
    542546
    543 #: job.c:306
     547#: job.c:394
    544548#, c-format
    545549msgid "*** [%s] Error %d"
    546550msgstr ""
    547551
    548 #: job.c:311
     552#: job.c:399
    549553msgid " (core dumped)"
    550554msgstr ""
    551555
    552 #: job.c:360
    553 #, c-format
    554 msgid "Warning: Empty redirection\n"
    555 msgstr ""
    556 
    557 #: job.c:482
     556#: job.c:488
    558557msgid "*** Waiting for unfinished jobs...."
    559558msgstr ""
    560559
    561 #: job.c:511
     560#: job.c:518
    562561#, c-format
    563562msgid "Live child 0x%08lx (%s) PID %ld %s\n"
    564563msgstr ""
    565564
    566 #: job.c:513 job.c:669 job.c:767 job.c:1388
     565#: job.c:520 job.c:701 job.c:804 job.c:1457
    567566msgid " (remote)"
    568567msgstr ""
    569568
    570 #: job.c:666
     569#: job.c:698
    571570#, c-format
    572571msgid "Reaping losing child 0x%08lx PID %ld %s\n"
    573572msgstr ""
    574573
    575 #: job.c:667
     574#: job.c:699
    576575#, c-format
    577576msgid "Reaping winning child 0x%08lx PID %ld %s\n"
    578577msgstr ""
    579578
    580 #: job.c:672
     579#: job.c:704
    581580#, c-format
    582581msgid "Cleaning up temp batch file %s\n"
    583582msgstr ""
    584583
    585 #: job.c:765
     584#: job.c:802
    586585#, c-format
    587586msgid "Removing child 0x%08lx PID %ld%s from chain.\n"
    588587msgstr ""
    589588
    590 #: job.c:822
     589#: job.c:862
    591590msgid "write jobserver"
    592591msgstr ""
    593592
    594 #: job.c:824
     593#: job.c:864
    595594#, c-format
    596595msgid "Released token for child 0x%08lx (%s).\n"
    597596msgstr ""
    598597
    599 #: job.c:1320 job.c:2476
    600 #, c-format
    601 msgid "process_easy() failed failed to launch process (e=%d)\n"
    602 msgstr ""
    603 
    604 #: job.c:1324 job.c:2480
     598#: job.c:1383
     599#, c-format
     600msgid "process_easy() failed to launch process (e=%ld)\n"
     601msgstr ""
     602
     603#: job.c:1387 job.c:2020
    605604#, c-format
    606605msgid ""
     
    609608msgstr ""
    610609
    611 #: job.c:1386
     610#: job.c:1455
    612611#, c-format
    613612msgid "Putting child 0x%08lx (%s) PID %ld%s on the chain.\n"
    614613msgstr ""
    615614
    616 #: job.c:1630
     615#: job.c:1709
    617616#, c-format
    618617msgid "Obtained token for child 0x%08lx (%s).\n"
    619618msgstr ""
    620619
    621 #: job.c:1639
     620#: job.c:1718
    622621msgid "read jobs pipe"
    623622msgstr ""
    624623
    625 #: job.c:1745
     624#: job.c:1832
    626625msgid "cannot enforce load limits on this operating system"
    627626msgstr ""
    628627
    629 #: job.c:1747
     628#: job.c:1834
    630629msgid "cannot enforce load limit: "
    631630msgstr ""
    632631
    633 #: job.c:1870
    634 #, c-format
    635 msgid "internal error: `%s' command_state"
    636 msgstr ""
    637 
    638 #: job.c:1955
    639 #, c-format
    640 msgid "-warning, CTRL-Y will leave sub-process(es) around.\n"
    641 msgstr ""
    642 
    643 #: job.c:1972
    644 #, c-format
    645 msgid "-warning, you may have to re-enable CTRL-Y handling from DCL.\n"
    646 msgstr ""
    647 
    648 #: job.c:2083
    649 #, c-format
    650 msgid "BUILTIN [%s][%s]\n"
    651 msgstr ""
    652 
    653 #: job.c:2094
    654 #, c-format
    655 msgid "BUILTIN CD %s\n"
    656 msgstr ""
    657 
    658 #: job.c:2112
    659 #, c-format
    660 msgid "BUILTIN RM %s\n"
    661 msgstr ""
    662 
    663 #: job.c:2133
    664 #, c-format
    665 msgid "Unknown builtin command '%s'\n"
    666 msgstr ""
    667 
    668 #: job.c:2155
    669 #, c-format
    670 msgid "Error, empty command\n"
    671 msgstr ""
    672 
    673 #: job.c:2162 main.c:1365
    674 msgid "fopen (temporary file)"
    675 msgstr ""
    676 
    677 #: job.c:2167
    678 #, c-format
    679 msgid "Redirected input from %s\n"
    680 msgstr ""
    681 
    682 #: job.c:2174
    683 #, c-format
    684 msgid "Redirected error to %s\n"
    685 msgstr ""
    686 
    687 #: job.c:2181
    688 #, c-format
    689 msgid "Redirected output to %s\n"
    690 msgstr ""
    691 
    692 #: job.c:2244
    693 #, c-format
    694 msgid "Executing %s instead\n"
    695 msgstr ""
    696 
    697 #: job.c:2344
    698 #, c-format
    699 msgid "Error spawning, %d\n"
    700 msgstr ""
    701 
    702 #: job.c:2377
     632#: job.c:1907
    703633msgid "no more file handles: could not duplicate stdin\n"
    704634msgstr ""
    705635
    706 #: job.c:2379
     636#: job.c:1909
    707637msgid "no more file handles: could not duplicate stdout\n"
    708638msgstr ""
    709639
    710 #: job.c:2405
    711 msgid "restoring of stdin failed\n"
    712 msgstr ""
    713 
    714 #: job.c:2407
    715 msgid "restoring of stdout failed\n"
    716 msgstr ""
    717 
    718 #: job.c:2505
    719 #, c-format
    720 msgid "make reaped child pid %d, still waiting for pid %d\n"
    721 msgstr ""
    722 
    723 #: job.c:2544
     640#: job.c:1937
     641msgid "Could not restore stdin\n"
     642msgstr ""
     643
     644#: job.c:1945
     645msgid "Could not restore stdout\n"
     646msgstr ""
     647
     648#: job.c:2016
     649#, c-format
     650msgid "process_easy() failed failed to launch process (e=%ld)\n"
     651msgstr ""
     652
     653#: job.c:2046
     654#, c-format
     655msgid "make reaped child pid %ld, still waiting for pid %ld\n"
     656msgstr ""
     657
     658#: job.c:2085
    724659#, c-format
    725660msgid "%s: Command not found"
    726661msgstr ""
    727662
    728 #: job.c:2588
     663#: job.c:2145
    729664#, c-format
    730665msgid "%s: Shell program not found"
    731666msgstr ""
    732667
    733 #: job.c:2597
     668#: job.c:2154
    734669msgid "spawnvpe: environment space might be exhausted"
    735670msgstr ""
    736671
    737 #: job.c:2802
     672#: job.c:2363
    738673#, c-format
    739674msgid "$SHELL changed (was `%s', now `%s')\n"
    740675msgstr ""
    741676
    742 #: job.c:3223
     677#: job.c:2789
    743678#, c-format
    744679msgid "Creating temporary batch file %s\n"
    745680msgstr ""
    746681
    747 #: job.c:3363
     682#: job.c:2902
    748683#, c-format
    749684msgid "%s (line %d) Bad shell context (!unixy && !batch_mode_shell)\n"
    750685msgstr ""
    751686
    752 #: main.c:268
     687#: main.c:291
    753688msgid "Options:\n"
    754689msgstr ""
    755690
    756 #: main.c:269
     691#: main.c:292
    757692msgid "  -b, -m                      Ignored for compatibility.\n"
    758693msgstr ""
    759694
    760 #: main.c:271
     695#: main.c:294
    761696msgid "  -B, --always-make           Unconditionally make all targets.\n"
    762697msgstr ""
    763698
    764 #: main.c:273
     699#: main.c:296
    765700msgid ""
    766701"  -C DIRECTORY, --directory=DIRECTORY\n"
     
    768703msgstr ""
    769704
    770 #: main.c:276
     705#: main.c:299
    771706msgid "  -d                          Print lots of debugging information.\n"
    772707msgstr ""
    773708
    774 #: main.c:278
     709#: main.c:301
    775710msgid ""
    776711"  --debug[=FLAGS]             Print various types of debugging information.\n"
    777712msgstr ""
    778713
    779 #: main.c:280
     714#: main.c:303
    780715msgid ""
    781716"  -e, --environment-overrides\n"
     
    783718msgstr ""
    784719
    785 #: main.c:283
     720#: main.c:306
    786721msgid ""
    787722"  -f FILE, --file=FILE, --makefile=FILE\n"
     
    789724msgstr ""
    790725
    791 #: main.c:286
     726#: main.c:309
    792727msgid "  -h, --help                  Print this message and exit.\n"
    793728msgstr ""
    794729
    795 #: main.c:288
     730#: main.c:311
    796731msgid "  -i, --ignore-errors         Ignore errors from commands.\n"
    797732msgstr ""
    798733
    799 #: main.c:290
     734#: main.c:313
    800735msgid ""
    801736"  -I DIRECTORY, --include-dir=DIRECTORY\n"
     
    803738msgstr ""
    804739
    805 #: main.c:293
     740#: main.c:316
    806741msgid ""
    807742"  -j [N], --jobs[=N]          Allow N jobs at once; infinite jobs with no "
     
    809744msgstr ""
    810745
    811 #: main.c:295
     746#: main.c:318
    812747msgid ""
    813748"  -k, --keep-going            Keep going when some targets can't be made.\n"
    814749msgstr ""
    815750
    816 #: main.c:297
     751#: main.c:320
    817752msgid ""
    818753"  -l [N], --load-average[=N], --max-load[=N]\n"
     
    821756msgstr ""
    822757
    823 #: main.c:300
     758#: main.c:323
     759msgid ""
     760"  -L, --check-symlink-times   Use the latest mtime between symlinks and "
     761"target.\n"
     762msgstr ""
     763
     764#: main.c:325
    824765msgid ""
    825766"  -n, --just-print, --dry-run, --recon\n"
     
    828769msgstr ""
    829770
    830 #: main.c:303
     771#: main.c:328
    831772msgid ""
    832773"  -o FILE, --old-file=FILE, --assume-old=FILE\n"
     
    835776msgstr ""
    836777
    837 #: main.c:306
     778#: main.c:331
    838779msgid "  -p, --print-data-base       Print make's internal database.\n"
    839780msgstr ""
    840781
    841 #: main.c:308
     782#: main.c:333
    842783msgid ""
    843784"  -q, --question              Run no commands; exit status says if up to "
     
    845786msgstr ""
    846787
    847 #: main.c:310
     788#: main.c:335
    848789msgid "  -r, --no-builtin-rules      Disable the built-in implicit rules.\n"
    849790msgstr ""
    850791
    851 #: main.c:312
     792#: main.c:337
    852793msgid "  -R, --no-builtin-variables  Disable the built-in variable settings.\n"
    853794msgstr ""
    854795
    855 #: main.c:314
     796#: main.c:339
    856797msgid "  -s, --silent, --quiet       Don't echo commands.\n"
    857798msgstr ""
    858799
    859 #: main.c:316
     800#: main.c:341
    860801msgid ""
    861802"  -S, --no-keep-going, --stop\n"
     
    863804msgstr ""
    864805
    865 #: main.c:319
     806#: main.c:344
    866807msgid "  -t, --touch                 Touch targets instead of remaking them.\n"
    867808msgstr ""
    868809
    869 #: main.c:321
     810#: main.c:346
    870811msgid ""
    871812"  -v, --version               Print the version number of make and exit.\n"
    872813msgstr ""
    873814
    874 #: main.c:323
     815#: main.c:348
    875816msgid "  -w, --print-directory       Print the current directory.\n"
    876817msgstr ""
    877818
    878 #: main.c:325
     819#: main.c:350
    879820msgid ""
    880821"  --no-print-directory        Turn off -w, even if it was turned on "
     
    882823msgstr ""
    883824
    884 #: main.c:327
     825#: main.c:352
    885826msgid ""
    886827"  -W FILE, --what-if=FILE, --new-file=FILE, --assume-new=FILE\n"
     
    888829msgstr ""
    889830
    890 #: main.c:330
     831#: main.c:355
    891832msgid ""
    892833"  --warn-undefined-variables  Warn when an undefined variable is "
     
    894835msgstr ""
    895836
    896 #: main.c:512
     837#: main.c:549
    897838msgid "empty string invalid as file name"
    898839msgstr ""
    899840
    900 #: main.c:591
     841#: main.c:630
    901842#, c-format
    902843msgid "unknown debug level specification `%s'"
    903844msgstr ""
    904845
    905 #: main.c:631
    906 #, c-format
    907 msgid "%s: Interrupt/Exception caught (code = 0x%x, addr = 0x%x)\n"
    908 msgstr ""
    909 
    910 #: main.c:638
     846#: main.c:670
     847#, c-format
     848msgid "%s: Interrupt/Exception caught (code = 0x%lx, addr = 0x%lx)\n"
     849msgstr ""
     850
     851#: main.c:677
    911852#, c-format
    912853msgid ""
    913854"\n"
    914855"Unhandled exception filter called from program %s\n"
    915 "ExceptionCode = %x\n"
    916 "ExceptionFlags = %x\n"
    917 "ExceptionAddress = %x\n"
    918 msgstr ""
    919 
    920 #: main.c:646
    921 #, c-format
    922 msgid "Access violation: write operation at address %x\n"
    923 msgstr ""
    924 
    925 #: main.c:647
    926 #, c-format
    927 msgid "Access violation: read operation at address %x\n"
    928 msgstr ""
    929 
    930 #: main.c:712
     856"ExceptionCode = %lx\n"
     857"ExceptionFlags = %lx\n"
     858"ExceptionAddress = %lx\n"
     859msgstr ""
     860
     861#: main.c:685
     862#, c-format
     863msgid "Access violation: write operation at address %lx\n"
     864msgstr ""
     865
     866#: main.c:686
     867#, c-format
     868msgid "Access violation: read operation at address %lx\n"
     869msgstr ""
     870
     871#: main.c:762 main.c:773
    931872#, c-format
    932873msgid "find_and_set_shell setting default_shell = %s\n"
    933874msgstr ""
    934875
    935 #: main.c:755
     876#: main.c:814
    936877#, c-format
    937878msgid "find_and_set_shell path search set default_shell = %s\n"
    938879msgstr ""
    939880
    940 #: main.c:1111
     881#: main.c:1236
    941882#, c-format
    942883msgid "%s is suspending for 30 seconds..."
    943884msgstr ""
    944885
    945 #: main.c:1113
     886#: main.c:1238
    946887#, c-format
    947888msgid "done sleep(30). Continuing.\n"
    948889msgstr ""
    949890
    950 #: main.c:1326
     891#: main.c:1466
    951892msgid "Makefile from standard input specified twice."
    952893msgstr ""
    953894
    954 #: main.c:1371
     895#: main.c:1505 vmsjobs.c:486
     896msgid "fopen (temporary file)"
     897msgstr ""
     898
     899#: main.c:1511
    955900msgid "fwrite (temporary file)"
    956901msgstr ""
    957902
    958 #: main.c:1459
    959 msgid "Do not specify -j or --jobs if sh.exe is not available."
    960 msgstr ""
    961 
    962 #: main.c:1460
    963 msgid "Resetting make for single job mode."
    964 msgstr ""
    965 
    966 #: main.c:1501
     903#: main.c:1640
    967904msgid "Parallel jobs (-j) are not supported on this platform."
    968905msgstr ""
    969906
    970 #: main.c:1502
     907#: main.c:1641
    971908msgid "Resetting to single job (-j1) mode."
    972909msgstr ""
    973910
    974 #: main.c:1517
     911#: main.c:1656
    975912msgid "internal error: multiple --jobserver-fds options"
    976913msgstr ""
    977914
    978 #: main.c:1525
     915#: main.c:1664
    979916#, c-format
    980917msgid "internal error: invalid --jobserver-fds string `%s'"
    981918msgstr ""
    982919
    983 #: main.c:1535
     920#: main.c:1674
    984921msgid "warning: -jN forced in submake: disabling jobserver mode."
    985922msgstr ""
    986923
    987 #: main.c:1545
     924#: main.c:1684
    988925msgid "dup jobserver"
    989926msgstr ""
    990927
    991 #: main.c:1548
     928#: main.c:1687
    992929msgid ""
    993930"warning: jobserver unavailable: using -j1.  Add `+' to parent make rule."
    994931msgstr ""
    995932
    996 #: main.c:1571
     933#: main.c:1710
    997934msgid "creating jobs pipe"
    998935msgstr ""
    999936
    1000 #: main.c:1584
     937#: main.c:1725
    1001938msgid "init jobserver pipe"
    1002939msgstr ""
    1003940
    1004 #: main.c:1670
     941#: main.c:1744
     942msgid "Symbolic links not supported: disabling -L."
     943msgstr ""
     944
     945#: main.c:1820
    1005946msgid "Updating makefiles....\n"
    1006947msgstr ""
    1007948
    1008 #: main.c:1695
     949#: main.c:1845
    1009950#, c-format
    1010951msgid "Makefile `%s' might loop; not remaking it.\n"
    1011952msgstr ""
    1012953
    1013 #: main.c:1770
     954#: main.c:1924
    1014955#, c-format
    1015956msgid "Failed to remake makefile `%s'."
    1016957msgstr ""
    1017958
    1018 #: main.c:1786
     959#: main.c:1941
    1019960#, c-format
    1020961msgid "Included makefile `%s' was not found."
    1021962msgstr ""
    1022963
    1023 #: main.c:1791
     964#: main.c:1946
    1024965#, c-format
    1025966msgid "Makefile `%s' was not found"
    1026967msgstr ""
    1027968
    1028 #: main.c:1859
     969#: main.c:2016
    1029970msgid "Couldn't change back to original directory."
    1030971msgstr ""
    1031972
    1032 #: main.c:1894
    1033 msgid "Re-executing:"
    1034 msgstr ""
    1035 
    1036 #: main.c:1949
     973#: main.c:2024
     974#, c-format
     975msgid "Re-executing[%u]:"
     976msgstr ""
     977
     978#: main.c:2140
    1037979msgid "unlink (temporary file): "
    1038980msgstr ""
    1039981
    1040 #: main.c:1972
     982#: main.c:2169
     983msgid ".DEFAULT_GOAL contains more than one target"
     984msgstr ""
     985
     986#: main.c:2189
    1041987msgid "No targets specified and no makefile found"
    1042988msgstr ""
    1043989
    1044 #: main.c:1974
     990#: main.c:2191
    1045991msgid "No targets"
    1046992msgstr ""
    1047993
    1048 #: main.c:1979
     994#: main.c:2196
    1049995msgid "Updating goal targets....\n"
    1050996msgstr ""
    1051997
    1052 #: main.c:2005
     998#: main.c:2222
    1053999msgid "warning:  Clock skew detected.  Your build may be incomplete."
    10541000msgstr ""
    10551001
    1056 #: main.c:2158
     1002#: main.c:2383
    10571003#, c-format
    10581004msgid "Usage: %s [options] [target] ...\n"
    10591005msgstr ""
    10601006
    1061 #: main.c:2164
     1007#: main.c:2389
    10621008#, c-format
    10631009msgid ""
     
    10661012msgstr ""
    10671013
    1068 #: main.c:2166
     1014#: main.c:2391
    10691015#, c-format
    10701016msgid ""
     
    10731019msgstr ""
    10741020
    1075 #: main.c:2169
     1021#: main.c:2394
    10761022#, c-format
    10771023msgid "Report bugs to <[email protected]>\n"
    10781024msgstr ""
    10791025
    1080 #: main.c:2241
     1026#: main.c:2466
    10811027#, c-format
    10821028msgid "the `-%c' option requires a non-empty string argument"
    10831029msgstr ""
    10841030
    1085 #: main.c:2293
     1031#: main.c:2518
    10861032#, c-format
    10871033msgid "the `-%c' option requires a positive integral argument"
    10881034msgstr ""
    10891035
    1090 #: main.c:2717
     1036#: main.c:2942
    10911037#, c-format
    10921038msgid ""
     
    10961042msgstr ""
    10971043
    1098 #: main.c:2723
     1044#: main.c:2948
    10991045#, c-format
    11001046msgid ""
     
    11031049msgstr ""
    11041050
    1105 #: main.c:2725
     1051#: main.c:2950
    11061052#, c-format
    11071053msgid ""
     
    11101056msgstr ""
    11111057
    1112 #: main.c:2743
     1058#: main.c:2968
    11131059#, c-format
    11141060msgid ""
     
    11171063msgstr ""
    11181064
    1119 #: main.c:2752
     1065#: main.c:2978
    11201066#, c-format
    11211067msgid ""
     
    11241070msgstr ""
    11251071
    1126 #: main.c:2822
     1072#: main.c:3101
    11271073#, c-format
    11281074msgid "%s: Entering an unknown directory\n"
    11291075msgstr ""
    11301076
    1131 #: main.c:2824
     1077#: main.c:3103
    11321078#, c-format
    11331079msgid "%s: Leaving an unknown directory\n"
    11341080msgstr ""
    11351081
    1136 #: main.c:2827
     1082#: main.c:3106
    11371083#, c-format
    11381084msgid "%s: Entering directory `%s'\n"
    11391085msgstr ""
    11401086
    1141 #: main.c:2830
     1087#: main.c:3109
    11421088#, c-format
    11431089msgid "%s: Leaving directory `%s'\n"
    11441090msgstr ""
    11451091
    1146 #: main.c:2835
     1092#: main.c:3114
    11471093#, c-format
    11481094msgid "%s[%u]: Entering an unknown directory\n"
    11491095msgstr ""
    11501096
    1151 #: main.c:2838
     1097#: main.c:3117
    11521098#, c-format
    11531099msgid "%s[%u]: Leaving an unknown directory\n"
    11541100msgstr ""
    11551101
    1156 #: main.c:2842
     1102#: main.c:3121
    11571103#, c-format
    11581104msgid "%s[%u]: Entering directory `%s'\n"
    11591105msgstr ""
    11601106
    1161 #: main.c:2845
     1107#: main.c:3124
    11621108#, c-format
    11631109msgid "%s[%u]: Leaving directory `%s'\n"
    11641110msgstr ""
    11651111
    1166 #: misc.c:303
     1112#: misc.c:285
    11671113msgid ".  Stop.\n"
    11681114msgstr ""
    11691115
     1116#: misc.c:306
     1117#, c-format
     1118msgid "Unknown error %d"
     1119msgstr ""
     1120
     1121#: misc.c:316
     1122#, c-format
     1123msgid "%s%s: %s"
     1124msgstr ""
     1125
    11701126#: misc.c:324
    11711127#, c-format
    1172 msgid "Unknown error %d"
    1173 msgstr ""
    1174 
    1175 #: misc.c:334
    1176 #, c-format
    1177 msgid "%s%s: %s"
    1178 msgstr ""
    1179 
    1180 #: misc.c:342
    1181 #, c-format
    11821128msgid "%s: %s"
    11831129msgstr ""
    11841130
    1185 #: misc.c:362 misc.c:377 misc.c:394 read.c:3104
     1131#: misc.c:344 misc.c:359 misc.c:376 read.c:3127
    11861132msgid "virtual memory exhausted"
    11871133msgstr ""
    11881134
    1189 #: misc.c:628
     1135#: misc.c:646
    11901136#, c-format
    11911137msgid "%s: user %lu (real %lu), group %lu (real %lu)\n"
    11921138msgstr ""
    11931139
    1194 #: misc.c:649
     1140#: misc.c:667
    11951141msgid "Initialized access"
    11961142msgstr ""
    11971143
    1198 #: misc.c:728
     1144#: misc.c:746
    11991145msgid "User access"
    12001146msgstr ""
    12011147
    1202 #: misc.c:776
     1148#: misc.c:794
    12031149msgid "Make access"
    12041150msgstr ""
    12051151
    1206 #: misc.c:810
     1152#: misc.c:828
    12071153msgid "Child access"
    12081154msgstr ""
    12091155
    1210 #: read.c:158
     1156#: misc.c:892
     1157#, c-format
     1158msgid "write error: %s"
     1159msgstr ""
     1160
     1161#: misc.c:894
     1162msgid "write error"
     1163msgstr ""
     1164
     1165#: read.c:160
    12111166msgid "Reading makefiles...\n"
    12121167msgstr ""
    12131168
    1214 #: read.c:316
     1169#: read.c:315
    12151170#, c-format
    12161171msgid "Reading makefile `%s'"
    12171172msgstr ""
    12181173
    1219 #: read.c:318
     1174#: read.c:317
    12201175#, c-format
    12211176msgid " (no default goal)"
    12221177msgstr ""
    12231178
    1224 #: read.c:320
     1179#: read.c:319
    12251180#, c-format
    12261181msgid " (search path)"
    12271182msgstr ""
    12281183
    1229 #: read.c:322
     1184#: read.c:321
    12301185#, c-format
    12311186msgid " (don't care)"
    12321187msgstr ""
    12331188
    1234 #: read.c:324
     1189#: read.c:323
    12351190#, c-format
    12361191msgid " (no ~ expansion)"
     
    12411196msgstr ""
    12421197
    1243 #: read.c:632
     1198#: read.c:633
    12441199msgid "extraneous `endef'"
    12451200msgstr ""
    12461201
    1247 #: read.c:644 read.c:672 variable.c:1229
     1202#: read.c:645 read.c:673 variable.c:1316
    12481203msgid "empty variable name"
    12491204msgstr ""
    12501205
    1251 #: read.c:661
     1206#: read.c:662
    12521207msgid "empty `override' directive"
    12531208msgstr ""
    12541209
    1255 #: read.c:686
     1210#: read.c:687
    12561211msgid "invalid `override' directive"
    12571212msgstr ""
    12581213
    1259 #: read.c:801
    1260 #, c-format
    1261 msgid "no file name for `%sinclude'"
    1262 msgstr ""
    1263 
    1264 #: read.c:864
     1214#: read.c:854
    12651215msgid "commands commence before first target"
    12661216msgstr ""
    12671217
    1268 #: read.c:915
     1218#: read.c:905
    12691219msgid "missing rule before commands"
    12701220msgstr ""
    12711221
    1272 #: read.c:1001
     1222#: read.c:992
    12731223#, c-format
    12741224msgid "missing separator%s"
    12751225msgstr ""
    12761226
    1277 #: read.c:1003
     1227#: read.c:994
    12781228msgid " (did you mean TAB instead of 8 spaces?)"
    12791229msgstr ""
    12801230
    1281 #: read.c:1173
     1231#: read.c:1152
    12821232msgid "missing target pattern"
    12831233msgstr ""
    12841234
    1285 #: read.c:1175
     1235#: read.c:1154
    12861236msgid "multiple target patterns"
    12871237msgstr ""
    12881238
    1289 #: read.c:1179
     1239#: read.c:1158
    12901240#, c-format
    12911241msgid "target pattern contains no `%%'"
    12921242msgstr ""
    12931243
    1294 #: read.c:1238
     1244#: read.c:1286
    12951245msgid "missing `endif'"
    12961246msgstr ""
    12971247
    1298 #: read.c:1314
     1248#: read.c:1377
    12991249msgid "Extraneous text after `endef' directive"
    13001250msgstr ""
    13011251
    1302 #: read.c:1348
     1252#: read.c:1411
    13031253msgid "missing `endef', unterminated `define'"
    13041254msgstr ""
    13051255
    1306 #: read.c:1400 read.c:1568
     1256#: read.c:1454
    13071257#, c-format
    13081258msgid "Extraneous text after `%s' directive"
    13091259msgstr ""
    13101260
    1311 #: read.c:1403
     1261#: read.c:1463 read.c:1477
    13121262#, c-format
    13131263msgid "extraneous `%s'"
    13141264msgstr ""
    13151265
    1316 #: read.c:1408
     1266#: read.c:1482
    13171267msgid "only one `else' per conditional"
    13181268msgstr ""
    13191269
    1320 #: read.c:1691
    1321 msgid "Malformed pattern-specific variable definition"
    1322 msgstr ""
    1323 
    1324 #: read.c:1714
     1270#: read.c:1824
    13251271msgid "Malformed target-specific variable definition"
    13261272msgstr ""
    13271273
    1328 #: read.c:1805
     1274#: read.c:1886
     1275msgid "prerequisites cannot be defined in command scripts"
     1276msgstr ""
     1277
     1278#: read.c:1921
    13291279msgid "mixed implicit and static pattern rules"
    13301280msgstr ""
    13311281
    1332 #: read.c:1808
     1282#: read.c:1924
    13331283msgid "mixed implicit and normal rules"
    13341284msgstr ""
    13351285
    1336 #: read.c:1849
     1286#: read.c:1954
    13371287#, c-format
    13381288msgid "target `%s' doesn't match the target pattern"
    13391289msgstr ""
    13401290
    1341 #: read.c:1871
    1342 #, c-format
    1343 msgid "target `%s' leaves prerequisite pattern empty"
    1344 msgstr ""
    1345 
    1346 #: read.c:1985 read.c:2085
     1291#: read.c:1973 read.c:2074
    13471292#, c-format
    13481293msgid "target file `%s' has both : and :: entries"
    13491294msgstr ""
    13501295
     1296#: read.c:1979
     1297#, c-format
     1298msgid "target `%s' given more than once in the same rule."
     1299msgstr ""
     1300
     1301#: read.c:1988
     1302#, c-format
     1303msgid "warning: overriding commands for target `%s'"
     1304msgstr ""
     1305
    13511306#: read.c:1991
    13521307#, c-format
    1353 msgid "target `%s' given more than once in the same rule."
    1354 msgstr ""
    1355 
    1356 #: read.c:2000
    1357 #, c-format
    1358 msgid "warning: overriding commands for target `%s'"
    1359 msgstr ""
    1360 
    1361 #: read.c:2003
    1362 #, c-format
    13631308msgid "warning: ignoring old commands for target `%s'"
    13641309msgstr ""
    13651310
    1366 #: read.c:2557
     1311#: read.c:2575
    13671312msgid "warning: NUL character seen; rest of line ignored"
    13681313msgstr ""
     
    13781323msgstr ""
    13791324
    1380 #: remake.c:296
     1325#: remake.c:297
    13811326#, c-format
    13821327msgid "Pruning file `%s'.\n"
    13831328msgstr ""
    13841329
    1385 #: remake.c:348
     1330#: remake.c:349
     1331#, c-format
     1332msgid "%sNo rule to make target `%s'%s"
     1333msgstr ""
     1334
     1335#: remake.c:351
     1336#, c-format
     1337msgid "%sNo rule to make target `%s', needed by `%s'%s"
     1338msgstr ""
     1339
     1340#: remake.c:378
    13861341#, c-format
    13871342msgid "Considering target file `%s'.\n"
    13881343msgstr ""
    13891344
    1390 #: remake.c:355
     1345#: remake.c:385
    13911346#, c-format
    13921347msgid "Recently tried and failed to update file `%s'.\n"
    13931348msgstr ""
    13941349
    1395 #: remake.c:359
     1350#: remake.c:400
    13961351#, c-format
    13971352msgid "File `%s' was considered already.\n"
    13981353msgstr ""
    13991354
    1400 #: remake.c:369
     1355#: remake.c:410
    14011356#, c-format
    14021357msgid "Still updating file `%s'.\n"
    14031358msgstr ""
    14041359
    1405 #: remake.c:372
     1360#: remake.c:413
    14061361#, c-format
    14071362msgid "Finished updating file `%s'.\n"
    14081363msgstr ""
    14091364
    1410 #: remake.c:393
     1365#: remake.c:434
    14111366#, c-format
    14121367msgid "File `%s' does not exist.\n"
    14131368msgstr ""
    14141369
    1415 #: remake.c:400
     1370#: remake.c:441
    14161371#, c-format
    14171372msgid ""
     
    14191374msgstr ""
    14201375
    1421 #: remake.c:413 remake.c:863
     1376#: remake.c:454 remake.c:962
    14221377#, c-format
    14231378msgid "Found an implicit rule for `%s'.\n"
    14241379msgstr ""
    14251380
    1426 #: remake.c:415 remake.c:865
     1381#: remake.c:456 remake.c:964
    14271382#, c-format
    14281383msgid "No implicit rule found for `%s'.\n"
    14291384msgstr ""
    14301385
    1431 #: remake.c:421 remake.c:871
     1386#: remake.c:462 remake.c:970
    14321387#, c-format
    14331388msgid "Using default commands for `%s'.\n"
    14341389msgstr ""
    14351390
    1436 #: remake.c:442 remake.c:897
     1391#: remake.c:484 remake.c:996
    14371392#, c-format
    14381393msgid "Circular %s <- %s dependency dropped."
    14391394msgstr ""
    14401395
    1441 #: remake.c:524
     1396#: remake.c:601
    14421397#, c-format
    14431398msgid "Finished prerequisites of target file `%s'.\n"
    14441399msgstr ""
    14451400
    1446 #: remake.c:530
     1401#: remake.c:607
    14471402#, c-format
    14481403msgid "The prerequisites of `%s' are being made.\n"
    14491404msgstr ""
    14501405
    1451 #: remake.c:543
     1406#: remake.c:620
    14521407#, c-format
    14531408msgid "Giving up on target file `%s'.\n"
    14541409msgstr ""
    14551410
    1456 #: remake.c:548
     1411#: remake.c:625
    14571412#, c-format
    14581413msgid "Target `%s' not remade because of errors."
    14591414msgstr ""
    14601415
    1461 #: remake.c:600
     1416#: remake.c:677
    14621417#, c-format
    14631418msgid "Prerequisite `%s' is order-only for target `%s'.\n"
    14641419msgstr ""
    14651420
    1466 #: remake.c:605
     1421#: remake.c:682
    14671422#, c-format
    14681423msgid "Prerequisite `%s' of target `%s' does not exist.\n"
    14691424msgstr ""
    14701425
    1471 #: remake.c:610
     1426#: remake.c:687
    14721427#, c-format
    14731428msgid "Prerequisite `%s' is newer than target `%s'.\n"
    14741429msgstr ""
    14751430
    1476 #: remake.c:613
     1431#: remake.c:690
    14771432#, c-format
    14781433msgid "Prerequisite `%s' is older than target `%s'.\n"
    14791434msgstr ""
    14801435
    1481 #: remake.c:631
     1436#: remake.c:708
    14821437#, c-format
    14831438msgid "Target `%s' is double-colon and has no prerequisites.\n"
    14841439msgstr ""
    14851440
    1486 #: remake.c:638
     1441#: remake.c:715
    14871442#, c-format
    14881443msgid "No commands for `%s' and no prerequisites actually changed.\n"
    14891444msgstr ""
    14901445
    1491 #: remake.c:643
     1446#: remake.c:720
    14921447#, c-format
    14931448msgid "Making `%s' due to always-make flag.\n"
    14941449msgstr ""
    14951450
    1496 #: remake.c:651
     1451#: remake.c:728
    14971452#, c-format
    14981453msgid "No need to remake target `%s'"
    14991454msgstr ""
    15001455
    1501 #: remake.c:653
     1456#: remake.c:730
    15021457#, c-format
    15031458msgid "; using VPATH name `%s'"
    15041459msgstr ""
    15051460
    1506 #: remake.c:673
     1461#: remake.c:750
    15071462#, c-format
    15081463msgid "Must remake target `%s'.\n"
    15091464msgstr ""
    15101465
    1511 #: remake.c:679
     1466#: remake.c:756
    15121467#, c-format
    15131468msgid "  Ignoring VPATH name `%s'.\n"
    15141469msgstr ""
    15151470
    1516 #: remake.c:688
     1471#: remake.c:765
    15171472#, c-format
    15181473msgid "Commands of `%s' are being run.\n"
    15191474msgstr ""
    15201475
    1521 #: remake.c:695
     1476#: remake.c:772
    15221477#, c-format
    15231478msgid "Failed to remake target file `%s'.\n"
    15241479msgstr ""
    15251480
    1526 #: remake.c:698
     1481#: remake.c:775
    15271482#, c-format
    15281483msgid "Successfully remade target file `%s'.\n"
    15291484msgstr ""
    15301485
    1531 #: remake.c:701
     1486#: remake.c:778
    15321487#, c-format
    15331488msgid "Target file `%s' needs remade under -q.\n"
    15341489msgstr ""
    15351490
    1536 #: remake.c:1012
    1537 #, c-format
    1538 msgid "%sNo rule to make target `%s'%s"
    1539 msgstr ""
    1540 
    1541 #: remake.c:1014
    1542 #, c-format
    1543 msgid "%sNo rule to make target `%s', needed by `%s'%s"
    1544 msgstr ""
    1545 
    1546 #: remake.c:1224
     1491#: remake.c:1306
    15471492#, c-format
    15481493msgid "Warning: File `%s' has modification time in the future"
    15491494msgstr ""
    15501495
    1551 #: remake.c:1231
     1496#: remake.c:1313
    15521497#, c-format
    15531498msgid "Warning: File `%s' has modification time %.2g s in the future"
    15541499msgstr ""
    15551500
    1556 #: remake.c:1351
     1501#: remake.c:1511
    15571502#, c-format
    15581503msgid ".LIBPATTERNS element `%s' is not a pattern"
    15591504msgstr ""
    15601505
    1561 #: remote-cstms.c:126
     1506#: remote-cstms.c:125
    15621507#, c-format
    15631508msgid "Customs won't export: %s\n"
    15641509msgstr ""
    15651510
    1566 #: rule.c:565
     1511#: rule.c:548
    15671512msgid ""
    15681513"\n"
     
    15701515msgstr ""
    15711516
    1572 #: rule.c:580
     1517#: rule.c:563
    15731518msgid ""
    15741519"\n"
     
    15761521msgstr ""
    15771522
     1523#: rule.c:566
     1524#, c-format
     1525msgid ""
     1526"\n"
     1527"# %u implicit rules, %u"
     1528msgstr ""
     1529
     1530#: rule.c:575
     1531msgid " terminal."
     1532msgstr ""
     1533
    15781534#: rule.c:583
    15791535#, c-format
    1580 msgid ""
    1581 "\n"
    1582 "# %u implicit rules, %u"
    1583 msgstr ""
    1584 
    1585 #: rule.c:592
    1586 msgid " terminal."
    1587 msgstr ""
    1588 
    1589 #: rule.c:600
    1590 #, c-format
    15911536msgid "BUG: num_pattern_rules wrong!  %u != %u"
    15921537msgstr ""
    15931538
    1594 #: signame.c:87
     1539#: signame.c:85
    15951540msgid "unknown signal"
    15961541msgstr ""
    15971542
    1598 #: signame.c:95
     1543#: signame.c:93
    15991544msgid "Hangup"
    16001545msgstr ""
    16011546
    1602 #: signame.c:98
     1547#: signame.c:96
    16031548msgid "Interrupt"
    16041549msgstr ""
    16051550
    1606 #: signame.c:101
     1551#: signame.c:99
    16071552msgid "Quit"
    16081553msgstr ""
    16091554
    1610 #: signame.c:104
     1555#: signame.c:102
    16111556msgid "Illegal Instruction"
    16121557msgstr ""
    16131558
    1614 #: signame.c:107
     1559#: signame.c:105
    16151560msgid "Trace/breakpoint trap"
    16161561msgstr ""
    16171562
    1618 #: signame.c:112
     1563#: signame.c:110
    16191564msgid "Aborted"
    16201565msgstr ""
    16211566
    1622 #: signame.c:115
     1567#: signame.c:113
    16231568msgid "IOT trap"
    16241569msgstr ""
    16251570
    1626 #: signame.c:118
     1571#: signame.c:116
    16271572msgid "EMT trap"
    16281573msgstr ""
    16291574
    1630 #: signame.c:121
     1575#: signame.c:119
    16311576msgid "Floating point exception"
    16321577msgstr ""
    16331578
    1634 #: signame.c:124
     1579#: signame.c:122
    16351580msgid "Killed"
    16361581msgstr ""
    16371582
    1638 #: signame.c:127
     1583#: signame.c:125
    16391584msgid "Bus error"
    16401585msgstr ""
    16411586
    1642 #: signame.c:130
     1587#: signame.c:128
    16431588msgid "Segmentation fault"
    16441589msgstr ""
    16451590
    1646 #: signame.c:133
     1591#: signame.c:131
    16471592msgid "Bad system call"
    16481593msgstr ""
    16491594
    1650 #: signame.c:136
     1595#: signame.c:134
    16511596msgid "Broken pipe"
    16521597msgstr ""
    16531598
    1654 #: signame.c:139
     1599#: signame.c:137
    16551600msgid "Alarm clock"
    16561601msgstr ""
    16571602
    1658 #: signame.c:142
     1603#: signame.c:140
    16591604msgid "Terminated"
    16601605msgstr ""
    16611606
    1662 #: signame.c:145
     1607#: signame.c:143
    16631608msgid "User defined signal 1"
    16641609msgstr ""
    16651610
    1666 #: signame.c:148
     1611#: signame.c:146
    16671612msgid "User defined signal 2"
    16681613msgstr ""
    16691614
    1670 #: signame.c:153 signame.c:156
     1615#: signame.c:151 signame.c:154
    16711616msgid "Child exited"
    16721617msgstr ""
    16731618
    1674 #: signame.c:159
     1619#: signame.c:157
    16751620msgid "Power failure"
    16761621msgstr ""
    16771622
    1678 #: signame.c:162
     1623#: signame.c:160
    16791624msgid "Stopped"
    16801625msgstr ""
    16811626
    1682 #: signame.c:165
     1627#: signame.c:163
    16831628msgid "Stopped (tty input)"
    16841629msgstr ""
    16851630
    1686 #: signame.c:168
     1631#: signame.c:166
    16871632msgid "Stopped (tty output)"
    16881633msgstr ""
    16891634
    1690 #: signame.c:171
     1635#: signame.c:169
    16911636msgid "Stopped (signal)"
    16921637msgstr ""
    16931638
    1694 #: signame.c:174
     1639#: signame.c:172
    16951640msgid "CPU time limit exceeded"
    16961641msgstr ""
    16971642
    1698 #: signame.c:177
     1643#: signame.c:175
    16991644msgid "File size limit exceeded"
    17001645msgstr ""
    17011646
    1702 #: signame.c:180
     1647#: signame.c:178
    17031648msgid "Virtual timer expired"
    17041649msgstr ""
    17051650
    1706 #: signame.c:183
     1651#: signame.c:181
    17071652msgid "Profiling timer expired"
    17081653msgstr ""
    17091654
    1710 #: signame.c:189
     1655#: signame.c:187
    17111656msgid "Window changed"
    17121657msgstr ""
    17131658
    1714 #: signame.c:192
     1659#: signame.c:190
    17151660msgid "Continued"
    17161661msgstr ""
    17171662
    1718 #: signame.c:195
     1663#: signame.c:193
    17191664msgid "Urgent I/O condition"
    17201665msgstr ""
    17211666
    1722 #: signame.c:202 signame.c:211
     1667#: signame.c:200 signame.c:209
    17231668msgid "I/O possible"
    17241669msgstr ""
    17251670
    1726 #: signame.c:205
     1671#: signame.c:203
    17271672msgid "SIGWIND"
    17281673msgstr ""
    17291674
    1730 #: signame.c:208
     1675#: signame.c:206
    17311676msgid "SIGPHONE"
    17321677msgstr ""
    17331678
    1734 #: signame.c:214
     1679#: signame.c:212
    17351680msgid "Resource lost"
    17361681msgstr ""
    17371682
    1738 #: signame.c:217
     1683#: signame.c:215
    17391684msgid "Danger signal"
    17401685msgstr ""
    17411686
    1742 #: signame.c:220
     1687#: signame.c:218
    17431688msgid "Information request"
    17441689msgstr ""
    17451690
    1746 #: signame.c:223
     1691#: signame.c:221
    17471692msgid "Floating point co-processor not available"
    17481693msgstr ""
    17491694
    1750 #: variable.c:1282
     1695#: strcache.c:210
     1696#, c-format
     1697msgid ""
     1698"\n"
     1699"%s # of strings in strcache: %d\n"
     1700msgstr ""
     1701
     1702#: strcache.c:211
     1703#, c-format
     1704msgid "%s # of strcache buffers: %d\n"
     1705msgstr ""
     1706
     1707#: strcache.c:212
     1708#, c-format
     1709msgid "%s strcache size: total = %d / max = %d / min = %d / avg = %d\n"
     1710msgstr ""
     1711
     1712#: strcache.c:214
     1713#, c-format
     1714msgid "%s strcache free: total = %d / max = %d / min = %d / avg = %d\n"
     1715msgstr ""
     1716
     1717#: variable.c:1369
    17511718msgid "default"
    17521719msgstr ""
    17531720
    1754 #: variable.c:1285
     1721#: variable.c:1372
    17551722msgid "environment"
    17561723msgstr ""
    17571724
    1758 #: variable.c:1288
     1725#: variable.c:1375
    17591726msgid "makefile"
    17601727msgstr ""
    17611728
    1762 #: variable.c:1291
     1729#: variable.c:1378
    17631730msgid "environment under -e"
    17641731msgstr ""
    17651732
    1766 #: variable.c:1294
     1733#: variable.c:1381
    17671734msgid "command line"
    17681735msgstr ""
    17691736
    1770 #: variable.c:1297
     1737#: variable.c:1384
    17711738msgid "`override' directive"
    17721739msgstr ""
    17731740
    1774 #: variable.c:1300
     1741#: variable.c:1387
    17751742msgid "automatic"
    17761743msgstr ""
    17771744
    1778 #: variable.c:1309
     1745#: variable.c:1396
    17791746#, c-format
    17801747msgid " (from `%s', line %lu)"
    17811748msgstr ""
    17821749
    1783 #: variable.c:1351
     1750#: variable.c:1438
    17841751msgid "# variable set hash-table stats:\n"
    17851752msgstr ""
    17861753
    1787 #: variable.c:1362
     1754#: variable.c:1449
    17881755msgid ""
    17891756"\n"
     
    17911758msgstr ""
    17921759
    1793 #: variable.c:1366
     1760#: variable.c:1453
    17941761msgid ""
    17951762"\n"
     
    17971764msgstr ""
    17981765
    1799 #: variable.c:1380
     1766#: variable.c:1467
    18001767msgid ""
    18011768"\n"
     
    18031770msgstr ""
    18041771
    1805 #: variable.c:1382
     1772#: variable.c:1469
    18061773#, c-format
    18071774msgid ""
     
    18101777msgstr ""
    18111778
    1812 #: variable.h:188
     1779#: variable.h:189
    18131780#, c-format
    18141781msgid "warning: undefined variable `%.*s'"
    18151782msgstr ""
    18161783
    1817 #: vmsfunctions.c:78
     1784#: vmsfunctions.c:94
    18181785#, c-format
    18191786msgid "sys$search failed with %d\n"
    18201787msgstr ""
    18211788
    1822 #: vpath.c:552
     1789#: vmsjobs.c:71
     1790#, c-format
     1791msgid "Warning: Empty redirection\n"
     1792msgstr ""
     1793
     1794#: vmsjobs.c:175
     1795#, c-format
     1796msgid "internal error: `%s' command_state"
     1797msgstr ""
     1798
     1799#: vmsjobs.c:268
     1800#, c-format
     1801msgid "-warning, CTRL-Y will leave sub-process(es) around.\n"
     1802msgstr ""
     1803
     1804#: vmsjobs.c:284
     1805#, c-format
     1806msgid "-warning, you may have to re-enable CTRL-Y handling from DCL.\n"
     1807msgstr ""
     1808
     1809#: vmsjobs.c:407
     1810#, c-format
     1811msgid "BUILTIN [%s][%s]\n"
     1812msgstr ""
     1813
     1814#: vmsjobs.c:418
     1815#, c-format
     1816msgid "BUILTIN CD %s\n"
     1817msgstr ""
     1818
     1819#: vmsjobs.c:436
     1820#, c-format
     1821msgid "BUILTIN RM %s\n"
     1822msgstr ""
     1823
     1824#: vmsjobs.c:457
     1825#, c-format
     1826msgid "Unknown builtin command '%s'\n"
     1827msgstr ""
     1828
     1829#: vmsjobs.c:479
     1830#, c-format
     1831msgid "Error, empty command\n"
     1832msgstr ""
     1833
     1834#: vmsjobs.c:491
     1835#, c-format
     1836msgid "Redirected input from %s\n"
     1837msgstr ""
     1838
     1839#: vmsjobs.c:498
     1840#, c-format
     1841msgid "Redirected error to %s\n"
     1842msgstr ""
     1843
     1844#: vmsjobs.c:505
     1845#, c-format
     1846msgid "Redirected output to %s\n"
     1847msgstr ""
     1848
     1849#: vmsjobs.c:568
     1850#, c-format
     1851msgid "Executing %s instead\n"
     1852msgstr ""
     1853
     1854#: vmsjobs.c:668
     1855#, c-format
     1856msgid "Error spawning, %d\n"
     1857msgstr ""
     1858
     1859#: vpath.c:571
    18231860msgid ""
    18241861"\n"
     
    18261863msgstr ""
    18271864
    1828 #: vpath.c:569
     1865#: vpath.c:588
    18291866msgid "# No `vpath' search paths."
    18301867msgstr ""
    18311868
    1832 #: vpath.c:571
     1869#: vpath.c:590
    18331870#, c-format
    18341871msgid ""
     
    18371874msgstr ""
    18381875
    1839 #: vpath.c:574
     1876#: vpath.c:593
    18401877msgid ""
    18411878"\n"
     
    18431880msgstr ""
    18441881
    1845 #: vpath.c:580
     1882#: vpath.c:599
    18461883msgid ""
    18471884"\n"
  • vendor/gnumake/current/read.c

    r280 r501  
    11/* Reading and parsing of makefiles for GNU Make.
    22Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
    3 2002 Free Software Foundation, Inc.
     31998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software
     4Foundation, Inc.
    45This file is part of GNU Make.
    56
    6 GNU Make is free software; you can redistribute it and/or modify
    7 it under the terms of the GNU General Public License as published by
    8 the Free Software Foundation; either version 2, or (at your option)
    9 any later version.
    10 
    11 GNU Make is distributed in the hope that it will be useful,
    12 but WITHOUT ANY WARRANTY; without even the implied warranty of
    13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    14 GNU General Public License for more details.
    15 
    16 You should have received a copy of the GNU General Public License
    17 along with GNU Make; see the file COPYING.  If not, write to
    18 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    19 Boston, MA 02111-1307, USA.  */
     7GNU Make is free software; you can redistribute it and/or modify it under the
     8terms of the GNU General Public License as published by the Free Software
     9Foundation; either version 2, or (at your option) any later version.
     10
     11GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     12WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     13A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     14
     15You should have received a copy of the GNU General Public License along with
     16GNU Make; see the file COPYING.  If not, write to the Free Software
     17Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
    2018
    2119#include "make.h"
     
    144142static enum make_word_type get_next_mword PARAMS ((char *buffer, char *delim,
    145143                        char **startp, unsigned int *length));
     144static void remove_comments PARAMS ((char *line));
     145static char *find_char_unquote PARAMS ((char *string, int stop1,
     146                                        int stop2, int blank, int ignorevars));
    146147
    147148
     
    187188        if (*p != '\0')
    188189          *p++ = '\0';
    189         name = xstrdup (name);
    190         if (eval_makefile (name,
    191                            RM_NO_DEFAULT_GOAL|RM_INCLUDED|RM_DONTCARE) < 2)
    192           free (name);
     190        eval_makefile (name, RM_NO_DEFAULT_GOAL|RM_INCLUDED|RM_DONTCARE);
    193191      }
    194192
     
    252250          for (p = default_makefiles; *p != 0; ++p)
    253251            {
    254               struct dep *d = (struct dep *) xmalloc (sizeof (struct dep));
    255               d->name = 0;
     252              struct dep *d = alloc_dep ();
    256253              d->file = enter_file (*p);
    257254              d->file->dontcare = 1;
    258               d->ignore_mtime = 0;
    259               d->need_2nd_expansion = 0;
    260255              /* Tell update_goal_chain to bail out as soon as this file is
    261256                 made, and main not to die if we can't make this file.  */
     
    311306  struct ebuffer ebuf;
    312307  const struct floc *curfile;
     308  char *expanded = 0;
     309  char *included = 0;
    313310  int makefile_errno;
    314311  int r;
    315312
    316   ebuf.floc.filenm = filename;
     313  ebuf.floc.filenm = strcache_add (filename);
    317314  ebuf.floc.lineno = 1;
    318315
     
    337334  if (!(flags & RM_NO_TILDE) && filename[0] == '~')
    338335    {
    339       char *expanded = tilde_expand (filename);
     336      expanded = tilde_expand (filename);
    340337      if (expanded != 0)
    341338        filename = expanded;
     
    354351      for (i = 0; include_directories[i] != 0; ++i)
    355352        {
    356           char *name = concat (include_directories[i], "/", filename);
    357           ebuf.fp = fopen (name, "r");
    358           if (ebuf.fp == 0)
    359             free (name);
    360           else
     353          included = concat (include_directories[i], "/", filename);
     354          ebuf.fp = fopen (included, "r");
     355          if (ebuf.fp)
    361356            {
    362               filename = name;
     357              filename = included;
    363358              break;
    364359            }
    365         }
     360          free (included);
     361        }
     362      /* If we're not using it, we already freed it above.  */
     363      if (filename != included)
     364        included = 0;
    366365    }
    367366
    368367  /* Add FILENAME to the chain of read makefiles.  */
    369   deps = (struct dep *) xmalloc (sizeof (struct dep));
     368  deps = alloc_dep ();
    370369  deps->next = read_makefiles;
    371370  read_makefiles = deps;
    372   deps->name = 0;
    373371  deps->file = lookup_file (filename);
    374372  if (deps->file == 0)
    375373    deps->file = enter_file (xstrdup (filename));
    376   if (filename != ebuf.floc.filenm)
    377     free (filename);
    378374  filename = deps->file->name;
    379375  deps->changed = flags;
    380   deps->ignore_mtime = 0;
    381   deps->need_2nd_expansion = 0;
    382376  if (flags & RM_DONTCARE)
    383377    deps->file->dontcare = 1;
     378
     379  if (expanded)
     380    free (expanded);
     381  if (included)
     382    free (included);
    384383
    385384  /* If the makefile can't be found at all, give up entirely.  */
     
    802801
    803802          p = allocated_variable_expand (p2);
     803
     804          /* If no filenames, it's a no-op.  */
    804805          if (*p == '\0')
    805             {
    806               error (fstart,
    807                      _("no file name for `%sinclude'"), noerror ? "-" : "");
    808               continue;
    809             }
     806            {
     807              free (p);
     808              continue;
     809            }
    810810
    811811          /* Parse the list of file names.  */
     
    837837              r = eval_makefile (name, (RM_INCLUDED | RM_NO_TILDE
    838838                                        | (noerror ? RM_DONTCARE : 0)));
    839               if (!r)
    840                 {
    841                   if (!noerror)
    842                     error (fstart, "%s: %s", name, strerror (errno));
    843                   free (name);
    844                 }
     839              if (!r && !noerror)
     840                error (fstart, "%s: %s", name, strerror (errno));
     841              free (name);
    845842            }
    846843
     
    887884        /* Search the line for an unquoted ; that is not after an
    888885           unquoted #.  */
    889         cmdleft = find_char_unquote (line, ';', '#', 0);
     886        cmdleft = find_char_unquote (line, ';', '#', 0, 1);
    890887        if (cmdleft != 0 && *cmdleft == '#')
    891888          {
     
    934931              {
    935932                /* Look for a semicolon in the expanded line.  */
    936                 cmdleft = find_char_unquote (p2, ';', 0, 0);
     933                cmdleft = find_char_unquote (p2, ';', 0, 0, 0);
    937934
    938935                if (cmdleft != 0)
     
    961958              }
    962959
    963             colonp = find_char_unquote(p2, ':', 0, 0);
     960            colonp = find_char_unquote(p2, ':', 0, 0, 0);
    964961#ifdef HAVE_DOS_PATHS
    965962            /* The drive spec brain-damage strikes again...  */
     
    970967                   colonp > p2 && isalpha ((unsigned char)colonp[-1]) &&
    971968                   (colonp == p2 + 1 || strchr (" \t(", colonp[-2]) != 0))
    972               colonp = find_char_unquote(colonp + 1, ':', 0, 0);
     969              colonp = find_char_unquote(colonp + 1, ':', 0, 0, 0);
    973970#endif
    974971            if (colonp != 0)
     
    10841081        /* This is a normal target, _not_ a target-specific variable.
    10851082           Unquote any = in the dependency list.  */
    1086         find_char_unquote (lb_next, '=', 0, 0);
     1083        find_char_unquote (lb_next, '=', 0, 0, 0);
    10871084
    10881085        /* We have some targets, so don't ignore the following commands.  */
     
    10991096            if (cmdleft == 0)
    11001097              {
    1101                 cmdleft = find_char_unquote (p2, ';', 0, 0);
     1098                cmdleft = find_char_unquote (p2, ';', 0, 0, 0);
    11021099                if (cmdleft != 0)
    11031100                  *(cmdleft++) = '\0';
     
    11641161            if (pattern_percent == 0)
    11651162              fatal (fstart, _("target pattern contains no `%%'"));
    1166             free((char *)target);
     1163            free ((char *)target);
    11671164          }
    11681165        else
     
    11761173        if (beg <= end && *beg != '\0')
    11771174          {
    1178             char *top;
    1179             const char *fromp = beg;
    1180 
    1181             /* Make a copy of the dependency string.  Note if we find '$'.  */
    1182             deps = (struct dep*) xmalloc (sizeof (struct dep));
    1183             deps->next = 0;
    1184             deps->name = top = (char *) xmalloc (end - beg + 2);
    1185             deps->need_2nd_expansion = 0;
    1186             while (fromp <= end)
    1187               {
    1188                 if (*fromp == '$')
    1189                   deps->need_2nd_expansion = 1;
    1190                 *(top++) = *(fromp++);
    1191               }
    1192             *top = '\0';
    1193             deps->file = 0;
     1175            /* Put all the prerequisites here; they'll be parsed later.  */
     1176            deps = alloc_dep ();
     1177            deps->name = savestring (beg, end - beg + 1);
    11941178          }
    11951179        else
     
    13181302
    13191303
     1304/* Remove comments from LINE.
     1305   This is done by copying the text at LINE onto itself.  */
     1306
     1307static void
     1308remove_comments (char *line)
     1309{
     1310  char *comment;
     1311
     1312  comment = find_char_unquote (line, '#', 0, 0, 0);
     1313
     1314  if (comment != 0)
     1315    /* Cut off the line at the #.  */
     1316    *comment = '\0';
     1317}
     1318
    13201319/* Execute a `define' directive.
    13211320   The first line has already been read, and NAME is the name of
     
    18381837      v->origin = origin;
    18391838      v->per_target = 1;
    1840       if (exported)
    1841         v->export = v_export;
     1839      v->export = exported ? v_export : v_default;
    18421840
    18431841      /* If it's not an override, check to see if there was a command-line
     
    19121910      char *name = filenames->name;
    19131911      struct file *f;
    1914       struct dep *d;
    1915       struct dep *this;
     1912      struct dep *this = 0;
    19161913      char *implicit_percent;
    19171914
     
    19191916      free (filenames);
    19201917
    1921       /* Check for .POSIX.  We used to do this in snap_deps() but that's not
    1922          good enough: it doesn't happen until after the makefile is read,
    1923          which means we cannot use its value during parsing.  */
     1918      /* Check for special targets.  Do it here instead of, say, snap_deps()
     1919         so that we can immediately use the value.  */
    19241920
    19251921      if (streq (name, ".POSIX"))
    19261922        posix_pedantic = 1;
     1923      else if (streq (name, ".SECONDEXPANSION"))
     1924        second_expansion = 1;
    19271925
    19281926      implicit_percent = find_percent (name);
     
    19591957        }
    19601958
    1961       /* If there are multiple filenames, copy the chain DEPS
    1962          for all but the last one.  It is not safe for the same deps
    1963          to go in more than one place in the database.  */
    1964       this = nextf != 0 ? copy_dep_chain (deps) : deps;
    1965 
    1966       if (pattern != 0)
    1967         {
    1968           /* If this is an extended static rule:
    1969              `targets: target%pattern: dep%pattern; cmds',
    1970              translate each dependency pattern into a plain filename
    1971              using the target pattern and this target's name.  */
    1972           if (!pattern_matches (pattern, pattern_percent, name))
    1973             {
    1974               /* Give a warning if the rule is meaningless.  */
    1975               error (flocp,
    1976                      _("target `%s' doesn't match the target pattern"), name);
    1977               this = 0;
    1978             }
    1979           else
    1980             /* We use subst_expand to do the work of translating % to $* in
    1981                the dependency line.  */
    1982 
    1983             if (this != 0 && find_percent (this->name) != 0)
    1984               {
    1985                 char *o;
    1986                 char *buffer = variable_expand ("");
    1987 
    1988                 o = subst_expand (buffer, this->name, "%", "$*", 1, 2, 0);
    1989 
    1990                 free (this->name);
    1991                 this->name = savestring (buffer, o - buffer);
    1992                 this->need_2nd_expansion = 1;
    1993               }
    1994         }
     1959      /* If this is a static pattern rule:
     1960         `targets: target%pattern: dep%pattern; cmds',
     1961         make sure the pattern matches this target name.  */
     1962      if (pattern && !pattern_matches (pattern, pattern_percent, name))
     1963        error (flocp, _("target `%s' doesn't match the target pattern"), name);
     1964      else if (deps)
     1965        {
     1966          /* If there are multiple filenames, copy the chain DEPS for all but
     1967             the last one.  It is not safe for the same deps to go in more
     1968             than one place in the database.  */
     1969          this = nextf != 0 ? copy_dep_chain (deps) : deps;
     1970          this->need_2nd_expansion = (second_expansion
     1971                                      && strchr (this->name, '$'));
     1972        }
    19951973
    19961974      if (!two_colon)
     
    20322010            f->cmds = cmds;
    20332011
    2034           /* Defining .SUFFIXES with no dependencies
    2035              clears out the list of suffixes.  */
     2012          /* Defining .SUFFIXES with no dependencies clears out the list of
     2013             suffixes.  */
    20362014          if (f == suffix_file && this == 0)
    20372015            {
    2038               d = f->deps;
    2039               while (d != 0)
    2040                 {
    2041                   struct dep *nextd = d->next;
    2042                   free (d->name);
    2043                   free ((char *)d);
    2044                   d = nextd;
    2045                 }
     2016              free_dep_chain (f->deps);
    20462017              f->deps = 0;
    20472018            }
     
    20582029
    20592030                  if (cmds != 0)
    2060                     {
    2061                       /* This is the rule with commands, so put its deps
    2062                          last. The rationale behind this is that $< expands
    2063                          to the first dep in the chain, and commands use $<
    2064                          expecting to get the dep that rule specifies.
    2065                          However the second expansion algorithm reverses
    2066                          the order thus we need to make it last here.  */
    2067 
    2068                       (*d_ptr)->next = this;
    2069                     }
     2031                    /* This is the rule with commands, so put its deps
     2032                       last. The rationale behind this is that $< expands to
     2033                       the first dep in the chain, and commands use $<
     2034                       expecting to get the dep that rule specifies.  However
     2035                       the second expansion algorithm reverses the order thus
     2036                       we need to make it last here.  */
     2037                    (*d_ptr)->next = this;
    20702038                  else
    20712039                    {
    20722040                      /* This is the rule without commands. Put its
    2073                          dependencies at the end but before dependencies
    2074                          from the rule with commands (if any). This way
    2075                          everything appears in makefile order.  */
     2041                         dependencies at the end but before dependencies from
     2042                         the rule with commands (if any). This way everything
     2043                         appears in makefile order.  */
    20762044
    20772045                      if (f->cmds != 0)
     
    21032071                f->updating = 1;
    21042072            }
    2105 
    2106           /* If this is a static pattern rule, set the file's stem to
    2107              the part of its name that matched the `%' in the pattern,
    2108              so you can use $* in the commands.  */
    2109           if (pattern != 0)
    2110             {
    2111               static char *percent = "%";
    2112               char *buffer = variable_expand ("");
    2113               char *o = patsubst_expand (buffer, name, pattern, percent,
    2114                                          pattern_percent+1, percent+1);
    2115               f->stem = savestring (buffer, o - buffer);
    2116             }
    21172073        }
    21182074      else
    21192075        {
    2120           /* Double-colon.  Make a new record
    2121              even if the file already has one.  */
     2076          /* Double-colon.  Make a new record even if there already is one.  */
    21222077          f = lookup_file (name);
     2078
    21232079          /* Check for both : and :: rules.  Check is_target so
    21242080             we don't lose on default suffix rules or makefiles.  */
     
    21272083                   _("target file `%s' has both : and :: entries"), f->name);
    21282084          f = enter_file (name);
    2129           /* If there was an existing entry and it was a double-colon
    2130              entry, enter_file will have returned a new one, making it the
    2131              prev pointer of the old one, and setting its double_colon
    2132              pointer to the first one.  */
     2085          /* If there was an existing entry and it was a double-colon entry,
     2086             enter_file will have returned a new one, making it the prev
     2087             pointer of the old one, and setting its double_colon pointer to
     2088             the first one.  */
    21332089          if (f->double_colon == 0)
    2134             /* This is the first entry for this name, so we must
    2135                set its double_colon pointer to itself.  */
     2090            /* This is the first entry for this name, so we must set its
     2091               double_colon pointer to itself.  */
    21362092            f->double_colon = f;
    21372093          f->is_target = 1;
     
    21402096        }
    21412097
     2098      /* If this is a static pattern rule, set the stem to the part of its
     2099         name that matched the `%' in the pattern, so you can use $* in the
     2100         commands.  */
     2101      if (pattern)
     2102        {
     2103          static char *percent = "%";
     2104          char *buffer = variable_expand ("");
     2105          char *o = patsubst_expand (buffer, name, pattern, percent,
     2106                                     pattern_percent+1, percent+1);
     2107          f->stem = savestring (buffer, o - buffer);
     2108          if (this)
     2109            {
     2110              this->staticpattern = 1;
     2111              this->stem = xstrdup (f->stem);
     2112            }
     2113        }
     2114
    21422115      /* Free name if not needed further.  */
    21432116      if (f != 0 && name != f->name
     
    21492122
    21502123      /* If this target is a default target, update DEFAULT_GOAL_FILE.  */
    2151       if (strcmp (*default_goal_name, name) == 0
     2124      if (streq (*default_goal_name, name)
    21522125          && (default_goal_file == 0
    2153               || strcmp (default_goal_file->name, name) != 0))
     2126              || ! streq (default_goal_file->name, name)))
    21542127        default_goal_file = f;
    21552128    }
     
    21592132      targets[target_idx] = 0;
    21602133      target_percents[target_idx] = 0;
     2134      if (deps)
     2135        deps->need_2nd_expansion = second_expansion;
    21612136      create_pattern_rule (targets, target_percents, two_colon, deps, cmds, 1);
    21622137      free ((char *) target_percents);
     
    21692144   Quoting backslashes are removed from STRING by compacting it into
    21702145   itself.  Returns a pointer to the first unquoted STOPCHAR if there is
    2171    one, or nil if there are none.  */
    2172 
    2173 char *
    2174 find_char_unquote (char *string, int stop1, int stop2, int blank)
     2146   one, or nil if there are none.  STOPCHARs inside variable references are
     2147   ignored if IGNOREVARS is true.
     2148
     2149   STOPCHAR _cannot_ be '$' if IGNOREVARS is true.  */
     2150
     2151static char *
     2152find_char_unquote (char *string, int stop1, int stop2, int blank,
     2153                   int ignorevars)
    21752154{
    21762155  unsigned int string_len = 0;
    21772156  register char *p = string;
    21782157
     2158  if (ignorevars)
     2159    ignorevars = '$';
     2160
    21792161  while (1)
    21802162    {
    21812163      if (stop2 && blank)
    2182         while (*p != '\0' && *p != stop1 && *p != stop2
     2164        while (*p != '\0' && *p != ignorevars && *p != stop1 && *p != stop2
    21832165               && ! isblank ((unsigned char) *p))
    21842166          ++p;
    21852167      else if (stop2)
    2186         while (*p != '\0' && *p != stop1 && *p != stop2)
     2168        while (*p != '\0' && *p != ignorevars && *p != stop1 && *p != stop2)
    21872169          ++p;
    21882170      else if (blank)
    2189         while (*p != '\0' && *p != stop1
     2171        while (*p != '\0' && *p != ignorevars && *p != stop1
    21902172               && ! isblank ((unsigned char) *p))
    21912173          ++p;
    21922174      else
    2193         while (*p != '\0' && *p != stop1)
     2175        while (*p != '\0' && *p != ignorevars && *p != stop1)
    21942176          ++p;
    21952177
    21962178      if (*p == '\0')
    21972179        break;
     2180
     2181      /* If we stopped due to a variable reference, skip over its contents.  */
     2182      if (*p == ignorevars)
     2183        {
     2184          char openparen = p[1];
     2185
     2186          p += 2;
     2187
     2188          /* Skip the contents of a non-quoted, multi-char variable ref.  */
     2189          if (openparen == '(' || openparen == '{')
     2190            {
     2191              unsigned int pcount = 1;
     2192              char closeparen = (openparen == '(' ? ')' : '}');
     2193
     2194              while (*p)
     2195                {
     2196                  if (*p == openparen)
     2197                    ++pcount;
     2198                  else if (*p == closeparen)
     2199                    if (--pcount == 0)
     2200                      {
     2201                        ++p;
     2202                        break;
     2203                      }
     2204                  ++p;
     2205                }
     2206            }
     2207
     2208          /* Skipped the variable reference: look for STOPCHARS again.  */
     2209          continue;
     2210        }
    21982211
    21992212      if (p > string && p[-1] == '\\')
     
    22322245find_percent (char *pattern)
    22332246{
    2234   return find_char_unquote (pattern, '%', 0, 0);
     2247  return find_char_unquote (pattern, '%', 0, 0, 0);
    22352248}
    22362249
     
    22522265parse_file_seq (char **stringp, int stopchar, unsigned int size, int strip)
    22532266{
    2254   register struct nameseq *new = 0;
    2255   register struct nameseq *new1, *lastnew1;
    2256   register char *p = *stringp;
     2267  struct nameseq *new = 0;
     2268  struct nameseq *new1, *lastnew1;
     2269  char *p = *stringp;
    22572270  char *q;
    22582271  char *name;
     
    22752288      /* Yes, find end of next name.  */
    22762289      q = p;
    2277       p = find_char_unquote (q, stopchar, VMS_COMMA, 1);
     2290      p = find_char_unquote (q, stopchar, VMS_COMMA, 1, 0);
    22782291#ifdef VMS
    22792292        /* convert comma separated list to space separated */
     
    22862299               || isspace ((unsigned char)p[-1])))
    22872300      {
    2288         p = find_char_unquote (p+1, stopchar, VMS_COMMA, 1);
     2301        p = find_char_unquote (p+1, stopchar, VMS_COMMA, 1, 0);
    22892302      }
    22902303#endif
     
    22972310      while (p != 0 && !isspace ((unsigned char)*p) &&
    22982311             (p[1] == '\\' || p[1] == '/') && isalpha ((unsigned char)p[-1]))
    2299         p = find_char_unquote (p + 1, stopchar, VMS_COMMA, 1);
     2312        p = find_char_unquote (p + 1, stopchar, VMS_COMMA, 1, 0);
    23002313#endif
    23012314      if (p == 0)
     
    29072920  dirs[idx] = 0;
    29082921
    2909   /* Now compute the maximum length of any name in it.  */
     2922  /* Now compute the maximum length of any name in it. Also add each
     2923     dir to the .INCLUDE_DIRS variable.  */
    29102924
    29112925  max_incl_len = 0;
     
    29202934      if (len > max_incl_len)
    29212935        max_incl_len = len;
     2936
     2937      /* Append to .INCLUDE_DIRS.   */
     2938      do_variable_definition (NILF, ".INCLUDE_DIRS", dirs[i],
     2939                              o_default, f_append, 0);
    29222940    }
    29232941
  • vendor/gnumake/current/readme.vms

    r280 r501  
    5050with a simple change in makefile.vms.
    5151
     52Some notes on case sensitive names in rules and on the disk. In the VMS
     53template for CONFIG.H case sensitive rules can be enabled with defining
     54WANT_CASE_SENSITIVE_TARGETS. For recent version of VMS there is a case
     55sensitive file system: ODS5. To make use of that, additionally un-defining
     56the HAVE_CASE_INSENSITIVE_FS is required. As these are C macros, different
     57versions of make need to be built to have any case sensitivity for VMS
     58working. Unfortunately, for ODS5 disks that's not all.
     59
     60- Usually DCL upcases command line tokens (except strings) and usually the
     61  file system is case blind (similar to how Windows systems work)
     62        $ set proc/parse=extended/case=sensitive
     63  preserves lower and UPPER on the command line and (for this process and all
     64  sub-processes) enables case sensitivity in the file system
     65
     66- Usually the CRTL tries to reverse what DCL did with command line tokens, it
     67  lowercases all tokens (except strings)
     68        $ define DECC$ARGV_PARSE_STYLE enable
     69  passes (the now preserved) lower and UPPER from the command line to main()
     70
     71- Usually the CRTL upcases the arguments to open() and friends
     72        $ define DECC$EFS_CASE_PRESERVE enable
     73  preserves the names as is.
     74
     75It is important to know that not all VMS tools are ready for case sensitivity.
     76With this setup some tools may not work as expected. The setup should not
     77blindly be applied for all users in default login procedures.
     78
     79Example? The poor coding gives a compiler message, showing that there are
     80different files:
     81
     82$ dir
     83
     84Directory ODS5DISK[HB]
     85
     86A.c;1               B.c;1               c.c;1               X.c;1
     87x.c;1
     88
     89Total of 5 files.
     90$ ods5make x.obj
     91cc    /obj=x.obj x.c
     92
     93foo(){lowercase_x();}
     94......^
     95%CC-I-IMPLICITFUNC, In this statement, the identifier "lowercase_x" is implicitly declared as a function.
     96at line number 1 in file ODS5DISK[HB]x.c;1
     97$ mc SYS$SYSDEVICE:[HARTMUT.MAKE_3_80P]ods5make X.obj
     98cc    /obj=X.obj X.c
     99
     100foo() {UPPERCASE_X();}
     101.......^
     102%CC-I-IMPLICITFUNC, In this statement, the identifier "UPPERCASE_X" is implicitly declared as a function.
     103at line number 1 in file ODS5DISK[HB]X.c;1
     104$ dir
     105
     106Directory ODS5DISK[HB]
     107
     108A.c;1               B.c;1               c.c;1               X.c;1
     109x.c;1               X.obj;1             x.obj;1
     110
     111Total of 7 files.
     112$
     113
    52114
    53115This is the VMS port of GNU Make done by [email protected].
     
    235297
    236298Comma (',') as a separator is now allowed. See makefile.vms for an example.
     299
     300-------------------------------------------------------------------------------
     301Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
     3022006 Free Software Foundation, Inc.
     303This file is part of GNU Make.
     304
     305GNU Make is free software; you can redistribute it and/or modify it under the
     306terms of the GNU General Public License as published by the Free Software
     307Foundation; either version 2, or (at your option) any later version.
     308
     309GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     310WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     311A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     312
     313You should have received a copy of the GNU General Public License along with
     314GNU Make; see the file COPYING.  If not, write to the Free Software
     315Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  • vendor/gnumake/current/remake.c

    r280 r501  
    11/* Basic dependency engine for GNU Make.
    2 Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1999,
    3 2002 Free Software Foundation, Inc.
     2Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
     31998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software
     4Foundation, Inc.
    45This file is part of GNU Make.
    56
    6 GNU Make is free software; you can redistribute it and/or modify
    7 it under the terms of the GNU General Public License as published by
    8 the Free Software Foundation; either version 2, or (at your option)
    9 any later version.
    10 
    11 GNU Make is distributed in the hope that it will be useful,
    12 but WITHOUT ANY WARRANTY; without even the implied warranty of
    13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    14 GNU General Public License for more details.
    15 
    16 You should have received a copy of the GNU General Public License
    17 along with GNU Make; see the file COPYING.  If not, write to
    18 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    19 Boston, MA 02111-1307, USA.  */
     7GNU Make is free software; you can redistribute it and/or modify it under the
     8terms of the GNU General Public License as published by the Free Software
     9Foundation; either version 2, or (at your option) any later version.
     10
     11GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     12WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     13A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     14
     15You should have received a copy of the GNU General Public License along with
     16GNU Make; see the file COPYING.  If not, write to the Free Software
     17Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
    2018
    2119#include "make.h"
     
    161159                 by calling update_file above.  We check this flag below to
    162160                 decide when to give an "up to date" diagnostic.  */
    163               g->changed += commands_started - ocommands_started;
     161              if (commands_started > ocommands_started)
     162                g->changed = 1;
    164163
    165164              /* If we updated a file and STATUS was not already 1, set it to
     
    267266      job_slots = j;
    268267    }
     268
    269269  return status;
    270270}
     
    309309      status |= update_file_1 (f, depth);
    310310      check_renamed (f);
     311
     312      /* Clean up any alloca() used during the update.  */
     313      alloca (0);
    311314
    312315      /* If we got an error, don't bother with double_colon etc.  */
     
    534537
    535538      if (!running)
    536         d->changed = file_mtime (d->file) != mtime;
     539        /* The prereq is considered changed if the timestamp has changed while
     540           it was built, OR it doesn't exist.
     541           This causes the Linux kernel build to break.  We'll defer this
     542           fix until GNU make 3.82 to give them time to update.  */
     543        d->changed = ((file_mtime (d->file) != mtime)
     544                      /* || (mtime == NONEXISTENT_MTIME) */);
    537545
    538546      lastd = d;
     
    846854  if ((ran && !file->phony) || touched)
    847855    {
    848       struct file *f;
    849856      int i = 0;
    850857
     
    866873
    867874      file->last_mtime = i == 0 ? UNKNOWN_MTIME : NEW_MTIME;
    868 
    869       /* Propagate the change of modification time to all the double-colon
    870          entries for this file.  */
    871       for (f = file->double_colon; f != 0; f = f->prev)
    872         f->last_mtime = file->last_mtime;
     875    }
     876
     877  if (file->double_colon)
     878    {
     879      /* If this is a double colon rule and it is the last one to be
     880         updated, propagate the change of modification time to all the
     881         double-colon entries for this file.
     882
     883         We do it on the last update because it is important to handle
     884         individual entries as separate rules with separate timestamps
     885         while they are treated as targets and then as one rule with the
     886         unified timestamp when they are considered as a prerequisite
     887         of some target.  */
     888
     889      struct file *f;
     890      FILE_TIMESTAMP max_mtime = file->last_mtime;
     891
     892      /* Check that all rules were updated and at the same time find
     893         the max timestamp.  We assume UNKNOWN_MTIME is newer then
     894         any other value.  */
     895      for (f = file->double_colon; f != 0 && f->updated; f = f->prev)
     896        if (max_mtime != UNKNOWN_MTIME
     897            && (f->last_mtime == UNKNOWN_MTIME || f->last_mtime > max_mtime))
     898          max_mtime = f->last_mtime;
     899
     900      if (f == 0)
     901        for (f = file->double_colon; f != 0; f = f->prev)
     902          f->last_mtime = max_mtime;
    873903    }
    874904
     
    9741004                    {
    9751005                      file->deps = d->next;
    976                       free ((char *) d);
     1006                      free_dep (d);
    9771007                      d = file->deps;
    9781008                    }
     
    9801010                    {
    9811011                      lastd->next = d->next;
    982                       free ((char *) d);
     1012                      free_dep (d);
    9831013                      d = lastd->next;
    9841014                    }
     
    12311261              rehash_file (file, name);
    12321262              check_renamed (file);
    1233               mtime = name_mtime (name);
     1263              /* If the result of a vpath search is -o or -W, preserve it.
     1264                 Otherwise, find the mtime of the resulting file.  */
     1265              if (mtime != OLD_MTIME && mtime != NEW_MTIME)
     1266                mtime = name_mtime (name);
    12341267            }
    12351268        }
    12361269    }
    12371270
    1238   {
    1239     /* Files can have bogus timestamps that nothing newly made will be
    1240        "newer" than.  Updating their dependents could just result in loops.
    1241        So notify the user of the anomaly with a warning.
    1242 
    1243        We only need to do this once, for now. */
    1244 
    1245     if (!clock_skew_detected
    1246         && mtime != NONEXISTENT_MTIME
    1247         && !file->updated)
    1248       {
    1249         static FILE_TIMESTAMP adjusted_now;
    1250 
    1251         FILE_TIMESTAMP adjusted_mtime = mtime;
     1271  /* Files can have bogus timestamps that nothing newly made will be
     1272     "newer" than.  Updating their dependents could just result in loops.
     1273     So notify the user of the anomaly with a warning.
     1274
     1275     We only need to do this once, for now. */
     1276
     1277  if (!clock_skew_detected
     1278      && mtime != NONEXISTENT_MTIME && mtime != NEW_MTIME
     1279      && !file->updated)
     1280    {
     1281      static FILE_TIMESTAMP adjusted_now;
     1282
     1283      FILE_TIMESTAMP adjusted_mtime = mtime;
    12521284
    12531285#if defined(WINDOWS32) || defined(__MSDOS__)
    1254         /* Experimentation has shown that FAT filesystems can set file times
    1255            up to 3 seconds into the future!  Play it safe.  */
     1286      /* Experimentation has shown that FAT filesystems can set file times
     1287         up to 3 seconds into the future!  Play it safe.  */
    12561288
    12571289#define FAT_ADJ_OFFSET  (FILE_TIMESTAMP) 3
    12581290
    1259         FILE_TIMESTAMP adjustment = FAT_ADJ_OFFSET << FILE_TIMESTAMP_LO_BITS;
    1260         if (ORDINARY_MTIME_MIN + adjustment <= adjusted_mtime)
    1261           adjusted_mtime -= adjustment;
     1291      FILE_TIMESTAMP adjustment = FAT_ADJ_OFFSET << FILE_TIMESTAMP_LO_BITS;
     1292      if (ORDINARY_MTIME_MIN + adjustment <= adjusted_mtime)
     1293        adjusted_mtime -= adjustment;
    12621294#elif defined(__EMX__)
    1263         /* FAT filesystems round time to the nearest even second!
    1264            Allow for any file (NTFS or FAT) to perhaps suffer from this
    1265            brain damage.  */
    1266         FILE_TIMESTAMP adjustment = (((FILE_TIMESTAMP_S (adjusted_mtime) & 1) == 0
    1267                        && FILE_TIMESTAMP_NS (adjusted_mtime) == 0)
    1268                       ? (FILE_TIMESTAMP) 1 << FILE_TIMESTAMP_LO_BITS
    1269                       : 0);
     1295      /* FAT filesystems round time to the nearest even second!
     1296         Allow for any file (NTFS or FAT) to perhaps suffer from this
     1297         brain damage.  */
     1298      FILE_TIMESTAMP adjustment = (((FILE_TIMESTAMP_S (adjusted_mtime) & 1) == 0
     1299                     && FILE_TIMESTAMP_NS (adjusted_mtime) == 0)
     1300                    ? (FILE_TIMESTAMP) 1 << FILE_TIMESTAMP_LO_BITS
     1301                    : 0);
    12701302#endif
    12711303
    1272         /* If the file's time appears to be in the future, update our
    1273            concept of the present and try once more.  */
    1274         if (adjusted_now < adjusted_mtime)
    1275           {
    1276             int resolution;
    1277             FILE_TIMESTAMP now = file_timestamp_now (&resolution);
    1278             adjusted_now = now + (resolution - 1);
    1279             if (adjusted_now < adjusted_mtime)
    1280               {
     1304      /* If the file's time appears to be in the future, update our
     1305         concept of the present and try once more.  */
     1306      if (adjusted_now < adjusted_mtime)
     1307        {
     1308          int resolution;
     1309          FILE_TIMESTAMP now = file_timestamp_now (&resolution);
     1310          adjusted_now = now + (resolution - 1);
     1311          if (adjusted_now < adjusted_mtime)
     1312            {
    12811313#ifdef NO_FLOAT
    1282                 error (NILF, _("Warning: File `%s' has modification time in the future"),
    1283                        file->name);
     1314              error (NILF, _("Warning: File `%s' has modification time in the future"),
     1315                     file->name);
    12841316#else
    1285                 double from_now =
    1286                   (FILE_TIMESTAMP_S (mtime) - FILE_TIMESTAMP_S (now)
    1287                    + ((FILE_TIMESTAMP_NS (mtime) - FILE_TIMESTAMP_NS (now))
    1288                       / 1e9));
    1289                 error (NILF, _("Warning: File `%s' has modification time %.2g s in the future"),
    1290                        file->name, from_now);
     1317              double from_now =
     1318                (FILE_TIMESTAMP_S (mtime) - FILE_TIMESTAMP_S (now)
     1319                 + ((FILE_TIMESTAMP_NS (mtime) - FILE_TIMESTAMP_NS (now))
     1320                    / 1e9));
     1321              error (NILF, _("Warning: File `%s' has modification time %.2g s in the future"),
     1322                     file->name, from_now);
    12911323#endif
    1292                 clock_skew_detected = 1;
    1293               }
    1294           }
    1295       }
    1296   }
     1324              clock_skew_detected = 1;
     1325            }
     1326        }
     1327    }
    12971328
    12981329  /* Store the mtime into all the entries for this file.  */
     
    13371368
    13381369  EINTRLOOP (e, stat (name, &st));
    1339   if (e != 0)
    1340     {
    1341       if (errno != ENOENT && errno != ENOTDIR)
    1342         perror_with_name ("stat: ", name);
     1370  if (e == 0)
     1371    mtime = FILE_TIMESTAMP_STAT_MODTIME (name, st);
     1372  else if (errno == ENOENT || errno == ENOTDIR)
     1373    mtime = NONEXISTENT_MTIME;
     1374  else
     1375    {
     1376      perror_with_name ("stat: ", name);
    13431377      return NONEXISTENT_MTIME;
    13441378    }
    1345   mtime = FILE_TIMESTAMP_STAT_MODTIME (name, st);
     1379
     1380  /* If we get here we either found it, or it doesn't exist.
     1381     If it doesn't exist see if we can use a symlink mtime instead.  */
    13461382
    13471383#ifdef MAKE_SYMLINKS
     
    13701406          if (e)
    13711407            {
    1372               /* Eh?  Just take what we have.  */
    1373               perror_with_name ("lstat: ", lpath);
     1408              /* Just take what we have so far.  */
     1409              if (errno != ENOENT && errno != ENOTDIR)
     1410                perror_with_name ("lstat: ", lpath);
    13741411              break;
    13751412            }
  • vendor/gnumake/current/remote-cstms.c

    r54 r501  
    44   the Make maintainers.
    55
    6 Copyright (C) 1988, 1989, 1992, 1993 Free Software Foundation, Inc.
     6Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
     71998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software
     8Foundation, Inc.
    79This file is part of GNU Make.
    810
    9 GNU Make is free software; you can redistribute it and/or modify
    10 it under the terms of the GNU General Public License as published by
    11 the Free Software Foundation; either version 2, or (at your option)
    12 any later version.
    13 
    14 GNU Make is distributed in the hope that it will be useful,
    15 but WITHOUT ANY WARRANTY; without even the implied warranty of
    16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    17 GNU General Public License for more details.
    18 
    19 You should have received a copy of the GNU General Public License
    20 along with GNU Make; see the file COPYING.  If not, write to
    21 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    22 Boston, MA 02111-1307, USA.  */
     11GNU Make is free software; you can redistribute it and/or modify it under the
     12terms of the GNU General Public License as published by the Free Software
     13Foundation; either version 2, or (at your option) any later version.
     14
     15GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     16WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     17A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     18
     19You should have received a copy of the GNU General Public License along with
     20GNU Make; see the file COPYING.  If not, write to the Free Software
     21Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
    2322
    2423#include "make.h"
  • vendor/gnumake/current/remote-stub.c

    r153 r501  
    11/* Template for the remote job exportation interface to GNU Make.
    2 Copyright (C) 1988, 1989, 1992, 1993, 1996 Free Software Foundation, Inc.
     2Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
     31998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software
     4Foundation, Inc.
    35This file is part of GNU Make.
    46
    5 GNU Make is free software; you can redistribute it and/or modify
    6 it under the terms of the GNU General Public License as published by
    7 the Free Software Foundation; either version 2, or (at your option)
    8 any later version.
     7GNU Make is free software; you can redistribute it and/or modify it under the
     8terms of the GNU General Public License as published by the Free Software
     9Foundation; either version 2, or (at your option) any later version.
    910
    10 GNU Make is distributed in the hope that it will be useful,
    11 but WITHOUT ANY WARRANTY; without even the implied warranty of
    12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    13 GNU General Public License for more details.
     11GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     12WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     13A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
    1414
    15 You should have received a copy of the GNU General Public License
    16 along with GNU Make; see the file COPYING.  If not, write to
    17 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    18 Boston, MA 02111-1307, USA.  */
     15You should have received a copy of the GNU General Public License along with
     16GNU Make; see the file COPYING.  If not, write to the Free Software
     17Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
    1918
    2019#include "make.h"
  • vendor/gnumake/current/rule.c

    r280 r501  
    11/* Pattern and suffix rule internals for GNU Make.
    2 Copyright (C) 1988,89,90,91,92,93, 1998 Free Software Foundation, Inc.
     2Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
     31998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software
     4Foundation, Inc.
    35This file is part of GNU Make.
    46
    5 GNU Make is free software; you can redistribute it and/or modify
    6 it under the terms of the GNU General Public License as published by
    7 the Free Software Foundation; either version 2, or (at your option)
    8 any later version.
    9 
    10 GNU Make is distributed in the hope that it will be useful,
    11 but WITHOUT ANY WARRANTY; without even the implied warranty of
    12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    13 GNU General Public License for more details.
    14 
    15 You should have received a copy of the GNU General Public License
    16 along with GNU Make; see the file COPYING.  If not, write to
    17 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    18 Boston, MA 02111-1307, USA.  */
     7GNU Make is free software; you can redistribute it and/or modify it under the
     8terms of the GNU General Public License as published by the Free Software
     9Foundation; either version 2, or (at your option) any later version.
     10
     11GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     12WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     13A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     14
     15You should have received a copy of the GNU General Public License along with
     16GNU Make; see the file COPYING.  If not, write to the Free Software
     17Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
    1918
    2019#include "make.h"
     
    206205      depname[0] = '%';
    207206      bcopy (source, depname + 1, len + 1);
    208       deps = (struct dep *) xmalloc (sizeof (struct dep));
    209       deps->next = 0;
     207      deps = alloc_dep ();
    210208      deps->name = depname;
    211       deps->ignore_mtime = 0;
    212       deps->need_2nd_expansion = 0;
    213209    }
    214210
     
    432428      /* We might leak dep->name here, but I'm not sure how to fix this: I
    433429         think that pointer might be shared (e.g., in the file hash?)  */
    434       free ((char *) dep);
     430      dep->name = 0; /* Make sure free_dep does not free name.  */
     431      free_dep (dep);
    435432      dep = t;
    436433    }
     
    481478                     struct commands *commands, int override)
    482479{
    483   register struct rule *r = (struct rule *) xmalloc (sizeof (struct rule));
    484   register unsigned int max_targets, i;
     480  unsigned int max_targets, i;
     481  struct rule *r = (struct rule *) xmalloc (sizeof (struct rule));
    485482
    486483  r->cmds = commands;
  • vendor/gnumake/current/rule.h

    r54 r501  
    11/* Definitions for using pattern rules in GNU Make.
    2 Copyright (C) 1988, 1989, 1991, 1992, 1993 Free Software Foundation, Inc.
     2Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
     31998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software
     4Foundation, Inc.
    35This file is part of GNU Make.
    46
    5 GNU Make is free software; you can redistribute it and/or modify
    6 it under the terms of the GNU General Public License as published by
    7 the Free Software Foundation; either version 2, or (at your option)
    8 any later version.
     7GNU Make is free software; you can redistribute it and/or modify it under the
     8terms of the GNU General Public License as published by the Free Software
     9Foundation; either version 2, or (at your option) any later version.
    910
    10 GNU Make is distributed in the hope that it will be useful,
    11 but WITHOUT ANY WARRANTY; without even the implied warranty of
    12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    13 GNU General Public License for more details.
     11GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     12WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     13A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
    1414
    15 You should have received a copy of the GNU General Public License
    16 along with GNU Make; see the file COPYING.  If not, write to
    17 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    18 Boston, MA 02111-1307, USA.  */
     15You should have received a copy of the GNU General Public License along with
     16GNU Make; see the file COPYING.  If not, write to the Free Software
     17Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
    1918
    2019/* Structure used for pattern rules.  */
  • vendor/gnumake/current/signame.c

    r280 r501  
    11/* Convert between signal names and numbers.
    2 Copyright (C) 1990,92,93,95,96,99, 2002 Free Software Foundation, Inc.
    3 This file was part of the GNU C Library, but is now part of GNU make.
    4 
    5 GNU Make is free software; you can redistribute it and/or modify
    6 it under the terms of the GNU General Public License as published by
    7 the Free Software Foundation; either version 2, or (at your option)
    8 any later version.
    9 
    10 GNU Make is distributed in the hope that it will be useful,
    11 but WITHOUT ANY WARRANTY; without even the implied warranty of
    12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    13 GNU General Public License for more details.
    14 
    15 You should have received a copy of the GNU General Public License
    16 along with GNU Make; see the file COPYING.  If not, write to
    17 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    18 Boston, MA 02111-1307, USA.  */
     2Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
     32000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
     4This file is part of GNU Make.
     5
     6GNU Make is free software; you can redistribute it and/or modify it under the
     7terms of the GNU General Public License as published by the Free Software
     8Foundation; either version 2, or (at your option) any later version.
     9
     10GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     11WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     12A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     13
     14You should have received a copy of the GNU General Public License along with
     15GNU Make; see the file COPYING.  If not, write to the Free Software
     16Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
    1917
    2018#include "make.h"
     
    2220/* If the system provides strsignal, we don't need it. */
    2321
    24 #if !defined(HAVE_STRSIGNAL)
     22#if !HAVE_STRSIGNAL
    2523
    2624/* If the system provides sys_siglist, we'll use that.
     
    2826 */
    2927
    30 #if !defined(HAVE_DECL_SYS_SIGLIST)
     28#if !HAVE_DECL_SYS_SIGLIST
    3129
    3230/* Some systems do not define NSIG in <signal.h>.  */
     
    236234
    237235#if ! HAVE_DECL_SYS_SIGLIST
     236# if HAVE_DECL__SYS_SIGLIST
     237#  define sys_siglist _sys_siglist
     238# elif HAVE_DECL___SYS_SIGLIST
     239#  define sys_siglist __sys_siglist
     240# else
    238241  static char sig_initted = 0;
    239242
    240243  if (!sig_initted)
    241244    sig_initted = signame_init ();
     245# endif
    242246#endif
    243247
  • vendor/gnumake/current/subproc.bat

    r54 r501  
     1@echo off
     2rem Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
     3rem 2005, 2006 Free Software Foundation, Inc.
     4rem This file is part of GNU Make.
     5
     6rem GNU Make is free software; you can redistribute it and/or modify it under
     7rem the terms of the GNU General Public License as published by the Free
     8rem Software Foundation; either version 2, or (at your option) any later
     9rem version.
     10
     11rem GNU Make is distributed in the hope that it will be useful, but WITHOUT
     12rem ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
     13rem FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
     14rem more details.
     15
     16rem You should have received a copy of the GNU General Public License along
     17rem with GNU Make; see the file COPYING.  If not, write to the Free Software
     18rem Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
     19
    120cd w32\subproc
    221set MAKE=%2
  • vendor/gnumake/current/tests/ChangeLog

    r280 r501  
     12006-04-01  Paul D. Smith  <[email protected]>
     2
     3        * scripts/functions/realpath: Don't run tests with multiple
     4        initial slashes on Windows: those paths mean something different.
     5
     62006-03-19  Paul D. Smith  <[email protected]>
     7
     8        * scripts/features/parallelism: Test that the jobserver is
     9        properly managed when we have to re-exec the master instance of
     10        make.
     11
     122006-03-17  Boris Kolpackov  <[email protected]>
     13
     14        * scripts/features/statipattrules: Add tests for bug #16053.
     15
     162006-03-09  Paul Smith  <[email protected]>
     17
     18        * scripts/features/escape: Use "pre:" not "p:" to avoid conflicts
     19        with DOS drive letters.  Fixes Savannah bug #15947.
     20
     21        * test_driver.pl (run_each_test): Set the status properly even
     22        when a test fails to execute.  Fixes Savannah bug #15942.
     23
     24        * scripts/functions/foreach: Use a different environment variable
     25        other than PATH to avoid differences with Windows platforms.
     26        Fixes Savannah bug #15938.
     27
     282006-03-05  Paul D. Smith  <[email protected]>
     29
     30        * run_make_tests.pl (set_more_defaults): Add CYGWIN_NT as a port
     31        type W32.  Fixed Savannah bug #15937.
     32
     33        * scripts/features/default_names: Don't call error() when the test
     34        fails.  Fixes Savannah bug #15941.
     35
     362006-02-17  Paul D. Smith  <[email protected]>
     37
     38        * scripts/features/targetvars: Test a complex construction which
     39        guarantees that we have to merge variable lists of different
     40        sizes.  Tests for Savannah bug #15757.
     41
     422006-02-15  Paul D. Smith  <[email protected]>
     43
     44        * scripts/functions/error: Make sure filename/lineno information
     45        is related to where the error is expanded, not where it's set.
     46        * scripts/functions/warning: Ditto.
     47        * scripts/functions/foreach: Check for different error conditions.
     48        * scripts/functions/word: Ditto.
     49        * scripts/variables/negative: Test some variable reference failure
     50        conditions.
     51        * scripts/options/warn-undefined-variables: Test the
     52        --warn-undefined-variables flag.
     53
     542006-02-09  Paul D. Smith  <[email protected]>
     55
     56        * run_make_tests.pl (set_more_defaults): Update valgrind support
     57        for newer versions.
     58        * test_driver.pl (toplevel): Skip all hidden files/directories (ones
     59        beginning with ".").
     60
     61        * scripts/functions/andor: Tests for $(and ..) and $(or ...)
     62        functions.
     63
     642006-02-08  Boris Kolpackov  <[email protected]>
     65
     66        * scripts/features/parallelism: Add a test for bug #15641.
     67
     682006-02-06  Paul D. Smith  <[email protected]>
     69
     70        * scripts/options/dash-W: Add a test for bug #15341.
     71
     722006-01-03  Paul D. Smith  <[email protected]>
     73
     74        * scripts/variables/automatic: Add a test for bug #8154.
     75
     76        * README: Update to reflect the current state of the test suite.
     77
     782005-12-12  Paul D. Smith  <[email protected]>
     79
     80        * scripts/features/parallelism, scripts/functions/wildcard,
     81        scripts/targets/FORCE, scripts/targets/PHONY,
     82        scripts/targets/SILENT: Use the default setting for
     83        $delete_command.  Fixes bug #15085.
     84
     85        * run_make_tests.pl (get_this_pwd) [VMS]: Use -no_ask with delete_file.
     86
     872005-12-11  Paul D. Smith  <[email protected]>
     88
     89        * scripts/misc/general4: Test implicit rules with '$' in the
     90        prereq list & prereq patterns.
     91        * scripts/features/se_implicit: Add in .SECONDEXPANSION settings.
     92
     932005-12-09  Boris Kolpackov  <[email protected]>
     94
     95        * scripts/features/patternrules: Add a test for bug #13022.
     96
     972005-12-07  Boris Kolpackov  <[email protected]>
     98
     99        * scripts/features/double_colon: Add a test for bug #14334.
     100
     1012005-11-17  Boris Kolpackov  <[email protected]>
     102
     103        * scripts/functions/flavor: Add a test for the flavor function.
     104
     1052005-11-14  Boris Kolpackov  <[email protected]>
     106
     107        * scripts/variables/INCLUDE_DIRS: Add a test for the .INCLUDE_DIRS
     108        special variable.
     109
     1102005-10-24  Paul D. Smith  <[email protected]>
     111
     112        * scripts/misc/general4: Test '$$' in prerequisites list.
     113        * scripts/features/statipattrules: Rewrite to use run_make_test().
     114        Add various static pattern info.
     115        * scripts/features/se_statpat: Enable .SECONDEXPANSION target.
     116        * scripts/features/se_explicit: Add tests for handling '$$' in
     117        prerequisite lists with and without setting .SECONDEXPANSION.
     118        * scripts/features/order_only: Convert to run_make_test().
     119        * run_make_tests.pl (set_more_defaults): If we can't get the value
     120        of $(MAKE) from make, then fatal immediately.
     121
     1222005-08-31  Paul D. Smith  <[email protected]>
     123
     124        * run_make_tests.pl (get_this_pwd): Require the POSIX module (in
     125        an eval to trap errors) and if it exists, use POSIX::getcwd to
     126        find the working directory.  If it doesn't exist, go back to the
     127        previous methods.  This tries to be more accurate on Windows
     128        systems.
     129
     1302005-08-29  Paul D. Smith  <[email protected]>
     131
     132        * scripts/functions/abspath: Add some text to the error messages
     133        to get a better idea of what's wrong.  Make warnings instead of
     134        errors.
     135
     136        * scripts/features/patspecific_vars: Don't use "test", which is
     137        UNIX specific.  Print the values and let the test script match
     138        them.
     139
     1402005-08-25  Paul Smith  <[email protected]>
     141
     142        * scripts/variables/SHELL: Use a /./ prefix instead of //: the
     143        former works better with non-UNIX environments.  Fixes Savannah
     144        bug #14129.
     145
     1462005-08-13  Boris Kolpackov  <[email protected]>
     147
     148        * scripts/functions/wildcard: Wrap calls to $(wildcard ) with
     149        $(sort) so that the resulting order is no longer filesystem-
     150        dependant.
     151
     1522005-08-10  Boris Kolpackov  <[email protected]>
     153
     154        * scripts/features/statipattrules: Add a test for Savannah bug #13881.
     155
     1562005-08-07  Paul D. Smith  <[email protected]>
     157
     158        * scripts/features/parallelism: Add a test for a bug reported by
     159        Michael Matz ([email protected]) in which make exits without waiting
     160        for all its children in some situations during parallel builds.
     161
     1622005-07-08  Paul D. Smith  <[email protected]>
     163
     164        * test_driver.pl: Reset the environment to a clean value every
     165        time before we invoke make.  I'm suspicious that the environment
     166        isn't handled the same way in Windows as it is in UNIX, and some
     167        variables are leaking out beyond the tests they are intended for.
     168        Create an %extraENV hash tests can set to add more env. vars.
     169        * tests/scripts/features/export: Change to use %extraENV.
     170        * tests/scripts/functions/eval: Ditto.
     171        * tests/scripts/functions/origin: Ditto.
     172        * tests/scripts/options/dash-e: Ditto.
     173        * tests/scripts/variables/SHELL: Ditto.
     174
     1752005-06-27  Paul D. Smith  <[email protected]>
     176
     177        * scripts/options/dash-W: Use 'echo >>' instead of touch to update
     178        files.
     179        * scripts/features/reinvoke: Rewrite to be safer on systems with
     180        subsecond timestamps.
     181        * scripts/features/patternrules: False exits with different error
     182        codes on different systems (for example, Linux => 1, Solaris => 255).
     183
     184        * scripts/options/dash-W: Set the timestamp to foo.x in the future,
     185        to be sure it will be considered updated when it's remade.
     186
     1872005-06-26  Paul D. Smith  <[email protected]>
     188
     189        * scripts/functions/shell: New test suite for the shell function.
     190
     1912005-06-25  Paul D. Smith  <[email protected]>
     192
     193        * scripts/features/include: Test include/-include/sinclude with no
     194        arguments.  Tests fix for Savannah bug #1761.
     195
     196        * scripts/misc/general3: Implement comprehensive testing of
     197        backslash-newline behavior in command scripts: various types of
     198        quoting, fast path / slow path, etc.
     199        Tests fix for Savannah bug #1332.
     200
     201        * scripts/options/symlinks: Test symlinks to non-existent files.
     202        Tests fix for Savannah bug #13280.
     203
     204        * scripts/misc/general3: Test semicolons in variable references.
     205        Tests fix for Savannah bug #1454.
     206
     207        * scripts/variables/MAKE_RESTARTS: New file: test the
     208        MAKE_RESTARTS variable.
     209        * scripts/options/dash-B: Test re-exec doesn't loop infinitely.
     210        Tests fix for Savannah bug #7566.
     211        * scripts/options/dash-W: New file: test the -W flag, including
     212        re-exec infinite looping.
     213
     2142005-06-12  Paul D. Smith  <[email protected]>
     215
     216        * scripts/misc/close_stdout: Add a test for Savannah bug #1328.
     217        This test only works on systems that have /dev/full (e.g., Linux).
     218
     2192005-06-09  Paul D. Smith  <[email protected]>
     220
     221        * scripts/functions/foreach: Add a test for Savannah bug #11913.
     222
     2232005-05-31  Boris Kolpackov  <[email protected]>
     224
     225        * scripts/features/include: Add a test for Savannah bug #13216.
     226        * scripts/features/patternrules: Add a test for Savannah bug #13218.
     227
    12282005-05-13  Paul D. Smith  <[email protected]>
    2229
     
    3085352002-07-11  Paul D. Smith  <[email protected]>
    309536
    310         * run_make_tests.pl (valid_option): Add support for Valgrind
    311         <http://developer.kde.org/~sewardj/>.  Use -valgrind option to the
    312         test suite.
     537        * run_make_tests.pl (valid_option): Add support for Valgrind.  Use
     538        -valgrind option to the test suite.
    313539        (set_more_defaults): Set up the file descriptor to capture
    314540        Valgrind output.  We have to unset its close-on-exec flag; we
     
    594820
    595821        ChangeLog file for the test suite created.
     822
     823
     824
     825Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
     8262002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
     827This file is part of GNU Make.
     828
     829GNU Make is free software; you can redistribute it and/or modify it under the
     830terms of the GNU General Public License as published by the Free Software
     831Foundation; either version 2, or (at your option) any later version.
     832
     833GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     834WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     835A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     836
     837You should have received a copy of the GNU General Public License along with
     838GNU Make; see the file COPYING.  If not, write to the Free Software
     839Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  • vendor/gnumake/current/tests/NEWS

    r53 r501  
    160160
    161161    Some new tests were added.
     162
     163
     164
     165-------------------------------------------------------------------------------
     166Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
     1672002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
     168This file is part of GNU Make.
     169
     170GNU Make is free software; you can redistribute it and/or modify it under the
     171terms of the GNU General Public License as published by the Free Software
     172Foundation; either version 2, or (at your option) any later version.
     173
     174GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     175WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     176A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     177
     178You should have received a copy of the GNU General Public License along with
     179GNU Make; see the file COPYING.  If not, write to the Free Software
     180Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  • vendor/gnumake/current/tests/README

    r53 r501  
    1 This is release 3.78 (September 6, 1999) of the GNU make test
    2 suite.  See the file NEWS for some of the changes since the last
    3 release.
     1The test suite was originally written by Steve McGee and Chris Arthur.
     2It is covered by the GNU General Public License (Version 2), described
     3in the file COPYING.  It has been maintained as part of GNU make proper
     4since GNU make 3.78.
    45
    5 This release is made by [email protected] to correspond to GNU make 3.78.
    6 It won't work correctly for versions before that.  In addition to some
    7 infrastructure changes I've added a number of new tests.
     6This entire test suite, including all test files, are copyright and
     7distributed under the following terms:
    88
    9 Rob Tulloh has contributed changes to get the suite running on NT.
     9 -----------------------------------------------------------------------------
     10 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
     11 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
     12 This file is part of GNU Make.
    1013
    11 Eli Zaretskii and Esa A E Peuha <[email protected]> have contributed
    12 changes to get the suite running on DJGPP/DOS.
     14 GNU Make is free software; you can redistribute it and/or modify it under the
     15 terms of the GNU General Public License as published by the Free Software
     16 Foundation; either version 2, or (at your option) any later version.
    1317
    14 This package has a number of problems which preclude me from
    15 distributing it with make as a default "make check" test suite.  The
    16 most serious of these is that it's not parallelizable: it scribbles all
    17 over its installation directory and so can only test one make at a
    18 time.  I simply don't have time to do more with this than I am so far;
    19 I'm very actively interested in finding someone willing to overhaul the
    20 test suite infrastructure.  If you're interested, contact me (see below)!
     18 GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     19 WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     20 A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
    2121
    22 The test suite thus far has been written by Steve McGee, Chris Arthur,
    23 and Paul D. Smith.  It is covered by the GNU General Public License
    24 (Version 2), described in the file COPYING.
     22 You should have received a copy of the GNU General Public License along with
     23 GNU Make; see the file COPYING.  If not, write to the Free Software
     24 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
     25 -----------------------------------------------------------------------------
    2526
    26 The test suite requires Perl and is known to work with Perl 4.036 and
    27 Perl 5.004 (available from ftp.gnu.org, and portable to many machines).
    28 Earlier or later versions may work; I don't know.  It assumes that the
    29 first "diff" it finds is GNU diff, but that only matters if a test
    30 fails.
     27The test suite requires Perl.  These days, you should have at least Perl
     285.004 (available from ftp.gnu.org, and portable to many machines).  It
     29used to work with Perl 4.036 but official support for Perl 4.x was
     30abandoned a long time ago, due to lack of testbeds, as well as interest.
     31
     32The test suite assumes that the first "diff" it finds on your PATH is
     33GNU diff, but that only matters if a test fails.
    3134
    3235To run the test suite on a UNIX system, use "perl ./run_make_tests"
     
    4447
    4548Tests cannot end with a "~" character, as the test suite will ignore any
    46 that do (I was tired of having it run my Emacs backup files as test :)
    47 
    48 If you want to run the tests in parallel, you should use the mkshadow
    49 script included here to create temporary "copies" (via symbolic links)
    50 of the test suite, one for each parallel job.  This is a pain and one
    51 day maybe the test suite will be rewritten so it's no longer
    52 necessary--volunteers welcome!
     49that do (I was tired of having it run my Emacs backup files as tests :))
    5350
    5451Also, sometimes the tests may behave strangely on networked
    5552filesystems.  You can use mkshadow to create a copy of the test suite in
    5653/tmp or similar, and try again.  If the error disappears, it's an issue
    57 with your network or file server, not GNU make (I believe).
     54with your network or file server, not GNU make (I believe).  This
     55shouldn't happen very often anymore: I've done a lot of work on the
     56tests to reduce the impacts of this situation.
    5857
    5958The options/dash-l test will not really test anything if the copy of
     
    7372other possible options for the test suite.
    7473
     74
     75Open Issues
     76-----------
     77
     78The test suite has a number of problems which should be addressed.  One
     79VERY serious one is that there is no real documentation.  You just have
     80to see the existing tests.  Use the newer tests: many of the tests
     81haven't been updated to use the latest/greatest test methods.  See the
     82ChangeLog in the tests directory for pointers.
     83
     84The second serious problem is that it's not parallelizable: it scribbles
     85all over its installation directory and so can only test one make at a
     86time.  The third serious problem is that it's not relocatable: the only
     87way it works when you build out of the source tree is to create
     88symlinks, which doesn't work on every system and is bogus to boot.  The
     89fourth serious problem is that it doesn't create its own sandbox when
     90running tests, so that if a test forgets to clean up after itself that
     91can impact future tests.
     92
     93
     94Bugs
     95----
     96
    7597Any complaints/suggestions/bugs/etc. for the test suite itself (as
    76 opposed to problems in make that the suite finds) should be sent to
    77 [email protected].  Enjoy!
     98opposed to problems in make that the suite finds) should be handled the
     99same way as normal GNU make bugs/problems (see the README for GNU make).
     100
     101
    78102                                                Paul D. Smith
    79103                                                Chris Arthur
  • vendor/gnumake/current/tests/mkshadow

    • Property svn:executable set to *
    r53 r501  
    44# Typically you'd put the shadow in /tmp or another local disk
    55#
     6# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
     7# 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
     8# This file is part of GNU Make.
     9#
     10# GNU Make is free software; you can redistribute it and/or modify it under the
     11# terms of the GNU General Public License as published by the Free Software
     12# Foundation; either version 2, or (at your option) any later version.
     13#
     14# GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     15# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     16# A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     17#
     18# You should have received a copy of the GNU General Public License along with
     19# GNU Make; see the file COPYING.  If not, write to the Free Software
     20# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
    621
    722case "$1" in
  • vendor/gnumake/current/tests/run_make_tests

    • Property svn:executable set to *
  • vendor/gnumake/current/tests/run_make_tests.pl

    • Property svn:executable set to *
    r280 r501  
    1212#                        (and others)
    1313
     14# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
     15# 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
     16# This file is part of GNU Make.
     17#
     18# GNU Make is free software; you can redistribute it and/or modify it under the
     19# terms of the GNU General Public License as published by the Free Software
     20# Foundation; either version 2, or (at your option) any later version.
     21#
     22# GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     23# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     24# A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     25#
     26# You should have received a copy of the GNU General Public License along with
     27# GNU Make; see the file COPYING.  If not, write to the Free Software
     28# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
     29
    1430$valgrind = 0;              # invoke make with valgrind
     31$valgrind_args = '--num-callers=15 --tool=memcheck --leak-check=full';
    1532$pure_log = undef;
    1633
    1734require "test_driver.pl";
     35
     36# Some target systems might not have the POSIX module...
     37$has_POSIX = eval { require "POSIX.pm" };
    1838
    1939#$SIG{INT} = sub { print STDERR "Caught a signal!\n"; die @_; };
     
    181201
    182202sub get_this_pwd {
    183   if ($vos) {
    184     $delete_command = "delete_file";
     203  $delete_command = 'rm -f';
     204  if ($has_POSIX) {
     205    $__pwd = POSIX::getcwd();
     206  } elsif ($vos) {
     207    $delete_command = "delete_file -no_ask";
    185208    $__pwd = `++(current_dir)`;
    186   }
    187   else {
    188     $delete_command = "rm";
     209  } else {
     210    # No idea... just try using pwd as a last resort.
    189211    chop ($__pwd = `pwd`);
    190212  }
     
    217239   # This is probably not specific enough.
    218240   #
    219    if ($osname =~ /Windows/i || $osname =~ /MINGW32/i) {
     241   if ($osname =~ /Windows/i || $osname =~ /MINGW32/i || $osname =~ /CYGWIN_NT/i) {
    220242     $port_type = 'W32';
    221243   }
     
    249271   # Find the full pathname of Make.  For DOS systems this is more
    250272   # complicated, so we ask make itself.
    251    $make_path = `sh -c 'echo "all:;\@echo \\\$(MAKE)" | $make_path -f-'`;
    252    chop $make_path;
     273   my $mk = `sh -c 'echo "all:;\@echo \\\$(MAKE)" | $make_path -f-'`;
     274   chop $mk;
     275   $mk or die "FATAL ERROR: Cannot determine the value of \$(MAKE):\n
     276'echo \"all:;\@echo \\\$(MAKE)\" | $make_path -f-' failed!\n";
     277   $make_path = $mk;
    253278   print "Make\t= `$make_path'\n" if $debug;
    254279
     
    304329
    305330   if ($valgrind) {
    306 #     use POSIX qw(:fcntl_h);
    307 #     require Fcntl;
    308331     open(VALGRIND, "> valgrind.out")
    309332       || die "Cannot open valgrind.out: $!\n";
    310333     #  -q --leak-check=yes
    311      $make_path = "valgrind --num-callers=15 --logfile-fd=".fileno(VALGRIND)." $make_path";
     334     exists $ENV{VALGRIND_ARGS} and $valgrind_args = $ENV{VALGRIND_ARGS};
     335     $make_path = "valgrind --log-fd=".fileno(VALGRIND)." $valgrind_args $make_path";
    312336     # F_SETFD is 2
    313337     fcntl(VALGRIND, 2, 0) or die "fcntl(setfd) failed: $!\n";
  • vendor/gnumake/current/tests/scripts/features/default_names

    r53 r501  
    88
    99open(MAKEFILE,"> $makefile");
    10 
    1110print MAKEFILE "FIRST: ; \@echo It chose GNUmakefile\n";
    12 
    1311close(MAKEFILE);
    1412
    1513# DOS/WIN32 platforms preserve case, but Makefile is the same file as makefile.
    1614# Just test what we can here (avoid Makefile versus makefile test).
    17 #
    18 if ($port_type eq 'UNIX')
    19 {
     15
     16if ($port_type eq 'UNIX') {
    2017  # Create another makefile called "makefile"
    2118  open(MAKEFILE,"> makefile");
    22 
    2319  print MAKEFILE "SECOND: ; \@echo It chose makefile\n";
    24 
    2520  close(MAKEFILE);
    2621}
    2722
    28 
    2923# Create another makefile called "Makefile"
    3024open(MAKEFILE,"> Makefile");
    31 
    3225print MAKEFILE "THIRD: ; \@echo It chose Makefile\n";
    33 
    3426close(MAKEFILE);
    3527
    3628
    3729&run_make_with_options("","",&get_logfile);
    38 
    39 # Create the answer to what should be produced by this Makefile
    40 $answer = "It chose GNUmakefile\n";
    41 
    42 # COMPARE RESULTS
    43 
    44 &compare_output($answer,&get_logfile(1)) || &error("abort");
     30&compare_output("It chose GNUmakefile\n",&get_logfile(1));
    4531unlink $makefile;
    4632
    47 # DOS/WIN32 platforms preserve case, but Makefile is the same file as makefile.
    48 # Just test what we can here (avoid Makefile versus makefile test).
    49 #
    50 if ($port_type eq 'UNIX')
    51 {
    52   $answer = "It chose makefile\n";
    53 
     33if ($port_type eq 'UNIX') {
    5434  &run_make_with_options("","",&get_logfile);
    55 
    56   &compare_output($answer,&get_logfile(1)) || &error("abort");
     35  &compare_output("It chose makefile\n",&get_logfile(1));
    5736  unlink "makefile";
    5837}
    5938
    60 $answer = "It chose Makefile\n";
    61 
    6239&run_make_with_options("","",&get_logfile);
    63 
    64 &compare_output($answer,&get_logfile(1)) || &error("abort");
     40&compare_output("It chose Makefile\n",&get_logfile(1));
    6541unlink "Makefile";
  • vendor/gnumake/current/tests/scripts/features/double_colon

    r53 r501  
    125125unlink('foo','f1.h','f2.h');
    126126
     127
     128# TEST 9: make sure all rules in s double colon family get executed
     129#         (Savannah bug #14334).
     130#
     131
     132&touch('one');
     133&touch('two');
     134
     135run_make_test('
     136.PHONY: all
     137all: result
     138
     139result:: one
     140        @echo $^ >>$@
     141        @echo $^
     142
     143result:: two
     144        @echo $^ >>$@
     145        @echo $^
     146
     147',
     148'',
     149'one
     150two');
     151
     152unlink('result','one','two');
     153
     154# This tells the test driver that the perl test script executed properly.
    1271551;
  • vendor/gnumake/current/tests/scripts/features/errors

    r280 r501  
     1#                                                                    -*-perl-*-
     2
    13$description = "The following tests the -i option and the '-' in front of \n"
    24              ."commands to test that make ignores errors in these commands\n"
     
    1517if ($vos)
    1618{
    17    $delete_command = "delete_file";
     19   $rm_command = "delete_file";
    1820}
    1921else
    2022{
    21    $delete_command = "rm";
     23   $rm_command = "rm";
    2224}
    2325
     
    2729
    2830print MAKEFILE "clean:\n"
    29               ."\t-$delete_command cleanit\n"
    30               ."\t$delete_command foo\n"
     31              ."\t-$rm_command cleanit\n"
     32              ."\t$rm_command foo\n"
    3133              ."clean2: \n"
    32               ."\t$delete_command cleanit\n"
    33               ."\t$delete_command foo\n";
     34              ."\t$rm_command cleanit\n"
     35              ."\t$rm_command foo\n";
    3436
    3537# END of Contents of MAKEFILE
     
    4042
    4143unlink("cleanit");
    42 $cleanit_error = `sh -c "$delete_command cleanit 2>&1"`;
     44$cleanit_error = `sh -c "$rm_command cleanit 2>&1"`;
    4345$delete_error_code = $? >> 8;
    4446
     
    4648# -------
    4749
    48 $answer = "$delete_command cleanit\n"
     50$answer = "$rm_command cleanit\n"
    4951         . $cleanit_error
    5052         ."$make_name: [clean] Error $delete_error_code (ignored)\n"
    51          ."$delete_command foo\n";
     53         ."$rm_command foo\n";
    5254
    5355&run_make_with_options($makefile,"",&get_logfile);
     
    7375# -------
    7476
    75 $answer = "$delete_command cleanit\n"
     77$answer = "$rm_command cleanit\n"
    7678         . $cleanit_error
    7779         ."$make_name: [clean2] Error $delete_error_code (ignored)\n"
    78          ."$delete_command foo\n";
     80         ."$rm_command foo\n";
    7981
    8082&run_make_with_options($makefile,"clean2 -i",&get_logfile);
  • vendor/gnumake/current/tests/scripts/features/escape

    r53 r501  
    77Make sure that escaping of '#' works.";
    88
    9 open(MAKEFILE,"> $makefile");
    10 
    11 print MAKEFILE <<'EOF';
    12 $(path)foo : ; @echo cp $^ $@
    13 
    14 foo\ bar: ; @echo 'touch "$@"'
    15 
    16 sharp: foo\#bar.ext
    17 foo\#bar.ext: ; @echo foo\#bar.ext = '$@'
    18 EOF
    199
    2010close(MAKEFILE);
     
    2313# TEST 1
    2414
    25 &run_make_with_options($makefile, "", &get_logfile);
    26 $answer = "cp foo\n";
    27 &compare_output($answer,&get_logfile(1));
     15run_make_test('
     16$(path)foo : ; @echo "touch ($@)"
     17
     18foo\ bar: ; @echo "touch ($@)"
     19
     20sharp: foo\#bar.ext
     21foo\#bar.ext: ; @echo "foo#bar.ext = ($@)"',
     22              '',
     23              'touch (foo)');
    2824
    2925# TEST 2: This one should fail, since the ":" is unquoted.
    3026
    31 &run_make_with_options($makefile, "path=p:", &get_logfile, 512);
    32 $answer = "$makefile:1: *** target pattern contains no `%'.  Stop.\n";
    33 &compare_output($answer,&get_logfile(1));
     27run_make_test(undef,
     28              'path=pre:',
     29              "#MAKEFILE#:2: *** target pattern contains no `%'.  Stop.",
     30              512);
    3431
    3532# TEST 3: This one should work, since we escape the ":".
    3633
    37 &run_make_with_options($makefile, "'path=p\\:'", &get_logfile, 0);
    38 $answer = "cp p:foo\n";
    39 &compare_output($answer,&get_logfile(1));
     34run_make_test(undef,
     35              "'path=pre\\:'",
     36              'touch (pre:foo)');
    4037
    4138# TEST 4: This one should fail, since the escape char is escaped.
    4239
    43 &run_make_with_options($makefile, "'path=p\\\\:'", &get_logfile, 512);
    44 $answer = "$makefile:1: *** target pattern contains no `%'.  Stop.\n";
    45 &compare_output($answer,&get_logfile(1));
     40run_make_test(undef,
     41              "'path=pre\\\\:'",
     42              "#MAKEFILE#:2: *** target pattern contains no `%'.  Stop.",
     43              512);
    4644
    4745# TEST 5: This one should work
    4846
    49 &run_make_with_options($makefile, "'foo bar'", &get_logfile, 0);
    50 $answer = "touch \"foo bar\"\n";
    51 &compare_output($answer,&get_logfile(1));
     47run_make_test(undef,
     48              "'foo bar'",
     49              'touch (foo bar)');
    5250
    5351# TEST 6: Test escaped comments
    5452
    55 &run_make_with_options($makefile, "sharp", &get_logfile, 0);
    56 $answer = "foo#bar.ext = foo#bar.ext\n";
    57 &compare_output($answer,&get_logfile(1));
     53run_make_test(undef,
     54              'sharp',
     55              'foo#bar.ext = (foo#bar.ext)');
    5856
    5957# This tells the test driver that the perl test script executed properly.
  • vendor/gnumake/current/tests/scripts/features/export

    r53 r501  
    5757# TEST 1: make sure vars inherited from the parent are exported
    5858
    59 $ENV{FOO} = 1;
     59$extraENV{FOO} = 1;
    6060
    6161&run_make_with_options($makefile,"",&get_logfile,0);
     
    6565
    6666&compare_output($answer,&get_logfile(1));
    67 
    68 delete $ENV{FOO};
    6967
    7068# TEST 2: global export.  Explicit unexport takes precedence.
     
    238236close(MAKEFILE);
    239237
    240 @ENV{qw(A B C D E F G H I J)} = qw(1 2 3 4 5 6 7 8 9 10);
     238@extraENV{qw(A B C D E F G H I J)} = qw(1 2 3 4 5 6 7 8 9 10);
    241239
    242240&run_make_with_options($makefile5,"",&get_logfile,0);
     
    244242&compare_output($answer,&get_logfile(1));
    245243
    246 delete @ENV{qw(A B C D E F G H I J)};
    247 
    248244
    249245# This tells the test driver that the perl test script executed properly.
  • vendor/gnumake/current/tests/scripts/features/include

    r284 r501  
    7979  );
    8080
     81
    8182# Test inheritance of dontcare flag when rebuilding makefiles.
    8283#
     
    9192
    92931;
     94
     95
     96# Make sure that we don't die when the command fails but we dontcare.
     97# (Savannah bug #13216).
     98#
     99run_make_test('
     100.PHONY: all
     101all:; @:
     102
     103-include foo
     104
     105foo: bar; @:
     106
     107bar:; @exit 1
     108', '', '');
     109
     110# Check include, sinclude, -include with no filenames.
     111# (Savannah bug #1761).
     112
     113run_make_test('
     114.PHONY: all
     115all:; @:
     116include
     117-include
     118sinclude', '', '');
     119
     1201;
  • vendor/gnumake/current/tests/scripts/features/order_only

    r284 r501  
    66prerequisites and ensure they behave properly.  Test the \$| variable.";
    77
    8 open(MAKEFILE,"> $makefile");
     8# TEST #0 -- Basics
    99
    10 print MAKEFILE <<'EOF';
     10run_make_test('
     11%r: | baz ; @echo $< $^ $|
     12bar: foo
     13foo:;@:
     14baz:;@:',
     15              '', "foo foo baz\n");
     16
     17# TEST #1 -- First try: the order-only prereqs need to be built.
     18
     19run_make_test(q!
    1120foo: bar | baz
    1221        @echo '$$^ = $^'
     
    1726
    1827bar baz:
    19         touch $@
    20 EOF
    21 
    22 close(MAKEFILE);
    23 
    24 
    25 # TEST #1 -- just the syntax
    26 
    27 &run_make_with_options($makefile, "", &get_logfile);
    28 $answer = "touch bar\ntouch baz\n\$^ = bar\n\$| = baz\ntouch foo\n";
    29 &compare_output($answer,&get_logfile(1));
     28        touch $@!,
     29              '', "touch bar\ntouch baz\n\$^ = bar\n\$| = baz\ntouch foo\n");
    3030
    3131
    3232# TEST #2 -- now we do it again: baz is PHONY but foo should _NOT_ be updated
    3333
    34 &run_make_with_options($makefile, "", &get_logfile);
    35 $answer = "touch baz\n";
    36 &compare_output($answer,&get_logfile(1));
     34run_make_test(undef, '', "touch baz\n");
    3735
    3836unlink(qw(foo bar baz));
    3937
    40 # Test prereqs that are both order and non-order
     38# TEST #3 -- Make sure the order-only prereq was promoted to normal.
    4139
    42 $makefile2 = &get_tmpfile;
    43 
    44 open(MAKEFILE,"> $makefile2");
    45 
    46 print MAKEFILE <<'EOF';
     40run_make_test(q!
    4741foo: bar | baz
    4842        @echo '$$^ = $^'
     
    5549
    5650bar baz:
    57         touch $@
    58 EOF
    59 
    60 close(MAKEFILE);
    61 
    62 # TEST #3 -- Make sure the order-only prereq was promoted to normal.
    63 
    64 &run_make_with_options($makefile2, "", &get_logfile);
    65 $answer = "touch bar\ntouch baz\n\$^ = bar baz\n\$| = \ntouch foo\n";
    66 &compare_output($answer,&get_logfile(1));
     51        touch $@!,
     52              '', "touch bar\ntouch baz\n\$^ = bar baz\n\$| = \ntouch foo\n");
    6753
    6854
    6955# TEST #4 -- now we do it again
    7056
    71 &run_make_with_options($makefile2, "", &get_logfile);
    72 $answer = "touch baz\n\$^ = bar baz\n\$| = \ntouch foo\n";
    73 &compare_output($answer,&get_logfile(1));
     57run_make_test(undef, '', "touch baz\n\$^ = bar baz\n\$| = \ntouch foo\n");
    7458
    7559unlink(qw(foo bar baz));
     
    7761# Test empty normal prereqs
    7862
    79 $makefile3 = &get_tmpfile;
     63# TEST #5 -- make sure the parser was correct.
    8064
    81 open(MAKEFILE,"> $makefile3");
    82 
    83 print MAKEFILE <<'EOF';
     65run_make_test(q!
    8466foo:| baz
    8567        @echo '$$^ = $^'
     
    9072
    9173baz:
    92         touch $@
    93 EOF
    94 
    95 close(MAKEFILE);
    96 
    97 # TEST #5 -- make sure the parser was correct.
    98 
    99 &run_make_with_options($makefile3, "", &get_logfile);
    100 $answer = "touch baz\n\$^ = \n\$| = baz\ntouch foo\n";
    101 &compare_output($answer,&get_logfile(1));
    102 
     74        touch $@!,
     75              '', "touch baz\n\$^ = \n\$| = baz\ntouch foo\n");
    10376
    10477# TEST #6 -- now we do it again: this time foo won't be built
    10578
    106 &run_make_with_options($makefile3, "", &get_logfile);
    107 $answer = "touch baz\n";
    108 &compare_output($answer,&get_logfile(1));
     79run_make_test(undef, '', "touch baz\n");
    10980
    11081unlink(qw(foo baz));
     
    11283# Test order-only in pattern rules
    11384
    114 $makefile4 = &get_tmpfile;
     85# TEST #7 -- make sure the parser was correct.
    11586
    116 open(MAKEFILE,"> $makefile4");
    117 
    118 print MAKEFILE <<'EOF';
     87run_make_test(q!
    11988%.w : %.x | baz
    12089        @echo '$$^ = $^'
     
    12695.PHONY: baz
    12796foo.x baz:
    128         touch $@
    129 EOF
    130 
    131 close(MAKEFILE);
    132 
    133 # TEST #7 -- make sure the parser was correct.
    134 
    135 &run_make_with_options($makefile4, "", &get_logfile);
    136 $answer = "touch foo.x\ntouch baz\n\$^ = foo.x\n\$| = baz\ntouch foo.w\n";
    137 &compare_output($answer,&get_logfile(1));
     97        touch $@!,
     98              '',
     99              "touch foo.x\ntouch baz\n\$^ = foo.x\n\$| = baz\ntouch foo.w\n");
    138100
    139101# TEST #8 -- now we do it again: this time foo.w won't be built
    140102
    141 &run_make_with_options($makefile4, "", &get_logfile);
    142 $answer = "touch baz\n";
    143 &compare_output($answer,&get_logfile(1));
     103run_make_test(undef, '', "touch baz\n");
    144104
    145105unlink(qw(foo.w foo.x baz));
     
    152112bar: foo
    153113foo:;@:
    154 baz:;@:
    155 ', '', "foo foo baz\n");
     114baz:;@:',
     115              '', "foo foo baz\n");
    156116
    157117
  • vendor/gnumake/current/tests/scripts/features/parallelism

    r284 r501  
    1919
    2020if ($vos) {
    21   $delete_command = "delete_file -no_ask";
    2221  $sleep_command = "sleep -seconds";
    2322}
    2423else {
    25   $delete_command = "rm -f";
    2624  $sleep_command = "sleep";
    2725}
     
    8482              '-j2', "first\nfirst\nsecond\nsecond");
    8583
     84# Michael Matz <[email protected]> reported a bug where if make is running in
     85# parallel without -k and two jobs die in a row, but not too close to each
     86# other, then make will quit without waiting for the rest of the jobs to die.
     87
     88run_make_test("
     89.PHONY: all fail.1 fail.2 fail.3 ok
     90all: fail.1 ok fail.2 fail.3
     91
     92fail.1 fail.2 fail.3:
     93        \@sleep \$(patsubst fail.%,%,\$\@)
     94        \@echo Fail
     95        \@exit 1
     96
     97ok:
     98        \@sleep 4
     99        \@echo Ok done",
     100              '-rR -j5', 'Fail
     101#MAKE#: *** [fail.1] Error 1
     102#MAKE#: *** Waiting for unfinished jobs....
     103Fail
     104#MAKE#: *** [fail.2] Error 1
     105Fail
     106#MAKE#: *** [fail.3] Error 1
     107Ok done',
     108             512);
     109
     110
     111# Test for Savannah bug #15641.
     112#
     113run_make_test('
     114.PHONY: all
     115all:; @:
     116
     117-include foo.d
     118
     119foo.d: comp
     120        @echo building $@
     121
     122comp: mod_a.o mod_b.o; @:
     123
     124mod_a.o mod_b.o:
     125        @exit 1
     126', '-j2', '');
     127
     128
     129# Make sure that all jobserver FDs are closed if we need to re-exec the
     130# master copy.
     131#
     132# First, find the "default" file descriptors we normally use
     133# Then make sure they're still used.
     134#
     135# Right now we don't have a way to run a makefile and capture the output
     136# without checking it, so we can't really write this test.
     137
     138# run_make_test('
     139# submake: ; @$(MAKE) --no-print-directory -f #MAKEFILE# fdprint 5>output
     140
     141# dependfile: ; @echo FOO=bar > $@
     142
     143# INCL := true
     144
     145# FOO=foo
     146# ifeq ($(INCL),true)
     147# -include dependfile
     148# endif
     149
     150# fdprint: ; @echo $(filter --jobserver%,$(MAKEFLAGS))
     151
     152# recurse: ; @$(MAKE) --no-print-directory -f #MAKEFILE# submake INCL=true',
     153#               '-j2 INCL=false fdprint',
     154#               'bar');
     155
     156# unlink('dependfile', 'output');
     157
     158
     159# # Do it again, this time where the include is done by the non-master make.
     160# run_make_test(undef, '-j2 recurse INCL=false', 'bar');
     161
     162# unlink('dependfile', 'output');
     163
    861641;
  • vendor/gnumake/current/tests/scripts/features/patspecific_vars

    r284 r501  
    6868
    6969/bar:
    70         @test "$(foo)" = "$$foo"
    71 ', '', '');
     70        @echo $(foo) $$foo
     71', '', 'foo foo');
    7272
    7373
  • vendor/gnumake/current/tests/scripts/features/patternrules

    r283 r501  
    2424# 1 - existing file
    2525%.1: void
    26         @false
     26        @exit 1
    2727%.1: #MAKEFILE#
    28         @true
     28        @exit 0
    2929
    3030# 2 - phony
    3131%.2: void
    32         @false
     32        @exit 1
    3333%.2: 2.phony
    34         @true
     34        @exit 0
    3535.PHONY: 2.phony
    3636
    3737# 3 - implicit-phony
    3838%.3: void
    39         @false
     39        @exit 1
    4040%.3: 3.implicit-phony
    41         @true
     41        @exit 0
    4242
    43433.implicit-phony:
     
    9696unlink("$dir/foo.c");
    9797
     98
     99# TEST #4: make sure precious flag is set properly for targets
     100#          that are built via implicit rules (Savannah bug #13218).
     101#
     102run_make_test('
     103.DELETE_ON_ERROR:
     104
     105.PRECIOUS: %.bar
     106
     107%.bar:; @touch $@ && exit 1
     108
     109$(dir)/foo.bar:
     110
     111',
     112"dir=$dir",
     113"#MAKE#: *** [$dir/foo.bar] Error 1",
     114512);
     115
     116unlink("$dir/foo.bar");
     117
     118
     119# TEST #5: make sure targets of a macthed implicit pattern rule never
     120#          never considered intermediate (Savannah bug #13022).
     121#
     122run_make_test('
     123.PHONY: all
     124all: foo.c foo.o
     125
     126%.h %.c: %.in
     127        touch $*.h
     128        touch $*.c
     129
     130%.o: %.c %.h
     131        echo $+ >$@
     132
     133%.o: %.c
     134        @echo wrong rule
     135
     136foo.in:
     137        touch $@
     138
     139',
     140'',
     141'touch foo.in
     142touch foo.h
     143touch foo.c
     144echo foo.c foo.h >foo.o');
     145
     146unlink('foo.in', 'foo.h', 'foo.c', 'foo.o');
     147
    98148# This tells the test driver that the perl test script executed properly.
    991491;
  • vendor/gnumake/current/tests/scripts/features/reinvoke

    r53 r501  
    88file, then touch the temp file to make it newer than the makefile.";
    99
    10 $makefile2 = &get_tmpfile;
    11 $makefile_orig = &get_tmpfile;
     10$omkfile = $makefile;
    1211
    13 open(MAKEFILE,"> $makefile");
     12&utouch(-600, 'incl.mk');
     13# For some reason if we don't do this then the test fails for systems
     14# with sub-second timestamps, maybe + NFS?  Not sure.
     15&utouch(-1, 'incl-1.mk');
    1416
    15 print MAKEFILE <<EOM;
     17run_make_test('
     18all: ; @echo running rules.
    1619
    17 all: ; \@echo 'running rules.'
     20#MAKEFILE# incl.mk: incl-1.mk
     21        @echo rebuilding $@
     22        @echo >> $@
    1823
    19 $makefile $makefile2: $makefile_orig
    20         \@echo 'rebuilding \$\@.'
    21         \@echo >> \$\@
     24include incl.mk',
     25              '', "rebuilding incl.mk\nrunning rules.\n");
    2226
    23 include $makefile2
     27# Make sure updating the makefile itself also works
    2428
    25 EOM
     29&utouch(-600, $omkfile);
    2630
    27 close(MAKEFILE);
     31run_make_test(undef, '', "rebuilding #MAKEFILE#\nrunning rules.\n");
    2832
    29 &utouch(-10, $makefile, $makefile2);
    30 &touch($makefile_orig);
     33&rmfiles('incl.mk', 'incl-1.mk');
    3134
    32 &run_make_with_options($makefile, "", &get_logfile, 0);
    33 
    34 # Create the answer to what should be produced by this Makefile
    35 
    36 $answer = "rebuilding $makefile2.\nrebuilding $makefile.\nrunning rules.\n";
    37 
    38 &compare_output($answer,&get_logfile(1))
    39   && unlink "$makefile_orig";
    4035
    4136# In this test we create an included file that's out-of-date, but then
    4237# the rule doesn't update it.  Make shouldn't re-exec.
    4338
    44 $makefile3 = &get_tmpfile;
     39&utouch(-600, 'b','a');
     40#&utouch(-10, 'a');
     41&touch('c');
    4542
    46 open(MAKEFILE, "> $makefile3");
    47 print MAKEFILE <<'EOM';
     43run_make_test('
    4844SHELL = /bin/sh
    4945
     
    5652c: ; echo >> $@
    5753
    58 include $(F)
    59 EOM
    60 
    61 close(MAKEFILE);
    62 
    63 &utouch(-20, 'b','a');
    64 #&utouch(-10, 'a');
    65 &touch('c');
    66 
    67 # First try with the file that's not updated "once removed" from the
    68 # file we're including.
    69 
    70 &run_make_with_options($makefile3, "F=a", &get_logfile, 0);
    71 
    72 $answer = "[ -f b ] || echo >> b\nhello\n";
    73 &compare_output($answer,&get_logfile(1));
     54include $(F)',
     55              'F=a', "[ -f b ] || echo >> b\nhello\n");
    7456
    7557# Now try with the file we're not updating being the actual file we're
    7658# including: this and the previous one test different parts of the code.
    7759
    78 &run_make_with_options($makefile3, "F=b", &get_logfile, 0);
     60run_make_test(undef, "F=b", "[ -f b ] || echo >> b\nhello\n")
    7961
    80 $answer = "[ -f b ] || echo >> b\nhello\n";
    81 &compare_output($answer,&get_logfile(1));
    82 
    83 unlink('a','b','c');
     62&rmfiles('a','b','c');
    8463
    8564# This tells the test driver that the perl test script executed properly.
  • vendor/gnumake/current/tests/scripts/features/se_explicit

    r283 r501  
    44$details = "";
    55
    6 # Test #1: automatic variables.
     6# TEST #0: Test handing of '$' in prerequisites with and without second
     7# expansion.
     8
     9run_make_test(q!
     10ifdef SE
     11  .SECONDEXPANSION:
     12endif
     13foo$$bar: bar$$baz bar$$biz ; @echo '$@ : $^'
     14PRE = one two
     15bar$$baz: $$(PRE)
     16baraz: $$(PRE)
     17PRE = three four
     18.DEFAULT: ; @echo '$@'
     19!,
     20              '',
     21              "\$\nbar\$biz\nfoo\$bar : bar\$baz bar\$biz");
     22
     23run_make_test(undef, 'SE=1', "three\nfour\nbariz\nfoo\$bar : baraz bariz");
     24
     25# TEST #1: automatic variables.
    726#
    827run_make_test('
     28.SECONDEXPANSION:
    929.DEFAULT: ; @echo $@
    1030
     
    4262#
    4363run_make_test('
     64.SECONDEXPANSION:
    4465.DEFAULT: ; @echo $@
    4566
     
    6081#
    6182run_make_test('
     83.SECONDEXPANSION:
    6284.DEFAULT: ; @echo $@
    6385
  • vendor/gnumake/current/tests/scripts/features/se_implicit

    r283 r501  
    1313#
    1414run_make_test('
     15.SECONDEXPANSION:
    1516.DEFAULT: ; @echo $@
    1617
     
    6162#
    6263run_make_test('
     64.SECONDEXPANSION:
    6365foo.x:
    6466
     
    8284#
    8385run_make_test('
     86.SECONDEXPANSION:
    8487.DEFAULT: ; @echo $@
    8588
     
    133136#
    134137run_make_test('
     138.SECONDEXPANSION:
    135139$(dir)/tmp/bar.o:
    136140
     
    154158#
    155159run_make_test('
     160.SECONDEXPANSION:
    156161$(dir)/tmp/foo.o: $(dir)/tmp/foo.c
    157162$(dir)/tmp/foo.c: ; @echo $@
     
    172177#
    173178run_make_test('
     179.SECONDEXPANSION:
    174180foo.o: foo.c
    175181foo.c: ; @echo $@
     
    187193#
    188194run_make_test('
     195.SECONDEXPANSION:
    189196foobarbaz:
    190197
     
    205212#
    206213run_make_test('
     214.SECONDEXPANSION:
    207215foo$$bar:
    208216
  • vendor/gnumake/current/tests/scripts/features/se_statpat

    r283 r501  
    77#
    88run_make_test('
     9.SECONDEXPANSION:
    910.DEFAULT: ; @echo $@
    1011
     
    4243#
    4344run_make_test('
     45.SECONDEXPANSION:
    4446.DEFAULT: ; @echo $@
    4547
     
    6163#
    6264run_make_test('
     65.SECONDEXPANSION:
    6366.DEFAULT: ; @echo $@
    6467
     
    107110#
    108111run_make_test('
     112.SECONDEXPANSION:
    109113foo$$bar: f%r: % $$*.1
    110114        @echo \'$*\'
  • vendor/gnumake/current/tests/scripts/features/statipattrules

    r284 r501  
    1010to emacs a .el file";
    1111
    12 open(MAKEFILE,"> $makefile");
    13 print MAKEFILE <<'EOF';
     12&touch('bar.c', 'lose.c');
     13
     14#   TEST #0
     15#   -------
     16
     17run_make_test('
    1418files = foo.elc bar.o lose.o
    1519
     
    1721
    1822$(filter %.elc,$(files)): %.elc: %.el ; @echo emacs $<
    19 EOF
    20 close(MAKEFILE);
     23',
     24              '',
     25              'CC -c bar.c -o bar.o');
     26
     27#  TEST #1
     28#  -------
     29
     30run_make_test(undef, 'lose.o', 'CC -c lose.c -o lose.o');
    2131
    2232
    23 &touch('bar.c', 'lose.c');
    24 
    25 #   TEST #1
    26 #   -------
    27 
    28 &run_make_with_options($makefile, '', &get_logfile);
    29 $answer = "CC -c bar.c -o bar.o\n";
    30 &compare_output($answer, &get_logfile(1));
    31 
    32 
    33 #  TEST #2
    34 #  -------
    35 
    36 &run_make_with_options($makefile, 'lose.o', &get_logfile);
    37 $answer = "CC -c lose.c -o lose.o\n";
    38 &compare_output($answer, &get_logfile(1));
    39 
    40 
    41 #   TEST #3
     33#   TEST #2
    4234#   -------
    4335&touch("foo.el");
    4436
    45 &run_make_with_options($makefile, 'foo.elc', &get_logfile);
    46 $answer = "emacs foo.el\n";
    47 &compare_output($answer, &get_logfile(1));
     37run_make_test(undef, 'foo.elc', 'emacs foo.el');
    4838
    49 
     39# Clean up after the first tests.
    5040unlink('foo.el', 'bar.c', 'lose.c');
    5141
    5242
    53 # TEST #4 -- PR/1670: don't core dump on invalid static pattern rules
     43# TEST #3 -- PR/1670: don't core dump on invalid static pattern rules
    5444# -------
    5545
    56 $makefile2 = &get_tmpfile;
    57 open(MAKEFILE, "> $makefile2");
    58 print MAKEFILE "foo: foo%: % ; \@echo \$@\n";
    59 close(MAKEFILE);
     46run_make_test('
     47.DEFAULT: ; @echo $@
     48foo: foo%: % %.x % % % y.% % ; @echo $@
     49',
     50              '', ".x\ny.\nfoo");
    6051
    61 &run_make_with_options($makefile2, '', &get_logfile);
    62 $answer = "foo\n";
    63 &compare_output($answer, &get_logfile(1));
    6452
    65 # TEST #5 -- bug #12180: core dump on a stat pattern rule with an empty
     53# TEST #4 -- bug #12180: core dump on a stat pattern rule with an empty
    6654#                        prerequisite list.
    67 #
    6855run_make_test('
    6956foo.x bar.x: %.x : ; @echo $@
    7057
    7158',
     59              '', 'foo.x');
     60
     61
     62# TEST #5 -- bug #13881: double colon static pattern rule does not
     63#                        substitute %.
     64run_make_test('
     65foo.bar:: %.bar: %.baz
     66foo.baz: ;@:
     67',
     68              '', '');
     69
     70
     71# TEST #6: make sure the second stem does not overwrite the first
     72#          perprerequisite's stem (Savannah bug #16053).
     73#
     74run_make_test('
     75all.foo.bar: %.foo.bar: %.one
     76
     77all.foo.bar: %.bar: %.two
     78
     79all.foo.bar:
     80        @echo $*
     81        @echo $^
     82
     83.DEFAULT:;@:
     84',
    7285'',
    73 'foo.x
    74 ');
     86'all.foo
     87all.one all.foo.two');
     88
     89
     90# TEST #7: make sure the second stem does not overwrite the first
     91#          perprerequisite's stem when second expansion is enabled
     92#          (Savannah bug #16053).
     93#
     94run_make_test('
     95.SECONDEXPANSION:
     96
     97all.foo.bar: %.foo.bar: %.one $$*-one
     98
     99all.foo.bar: %.bar: %.two $$*-two
     100
     101all.foo.bar:
     102        @echo $*
     103        @echo $^
     104
     105.DEFAULT:;@:
     106',
     107'',
     108'all.foo
     109all.one all-one all.foo.two all.foo-two');
    75110
    761111;
  • vendor/gnumake/current/tests/scripts/features/targetvars

    r53 r501  
    268268&compare_output($answer, &get_logfile(1));
    269269
     270# TEST #17
     271
     272# Test a merge of set_lists for files, where one list is much longer
     273# than the other.  See Savannah bug #15757.
     274
     275mkdir('t1', 0777);
     276touch('t1/rules.mk');
     277
     278run_make_test('
     279VPATH = t1
     280include rules.mk
     281.PHONY: all
     282all: foo.x
     283foo.x : rules.mk ; @echo MYVAR=$(MYVAR) FOOVAR=$(FOOVAR) ALLVAR=$(ALLVAR)
     284all: ALLVAR = xxx
     285foo.x: FOOVAR = bar
     286rules.mk : MYVAR = foo
     287.INTERMEDIATE: foo.x rules.mk
     288',
     289              '-I t1',
     290              'MYVAR= FOOVAR=bar ALLVAR=xxx');
     291
     292rmfiles('t1/rules.mk');
     293rmdir('t1');
     294
     295# TEST #18
     296
     297# Test appending to a simple variable containing a "$": avoid a
     298# double-expansion.  See Savannah bug #15913.
     299
     300run_make_test("
     301VAR := \$\$FOO
     302foo: VAR += BAR
     303foo: ; \@echo '\$(VAR)'",
     304              '',
     305              '$FOO BAR');
     306
    2703071;
  • vendor/gnumake/current/tests/scripts/functions/abspath

    r283 r501  
    66run_make_test('
    77ifneq ($(realpath $(abspath .)),$(CURDIR))
    8   $(error )
     8  $(warning .: abs="$(abspath .)" real="$(realpath $(abspath .))" curdir="$(CURDIR)")
    99endif
    1010
    1111ifneq ($(realpath $(abspath ./)),$(CURDIR))
    12   $(error )
     12  $(warning ./: abs="$(abspath ./)" real="$(realpath $(abspath ./))" curdir="$(CURDIR)")
    1313endif
    1414
    1515ifneq ($(realpath $(abspath .///)),$(CURDIR))
    16   $(error )
     16  $(warning .///: abs="$(abspath .///)" real="$(realpath $(abspath .///))" curdir="$(CURDIR)")
    1717endif
    1818
    1919ifneq ($(abspath /),/)
    20   $(error )
     20  $(warning /: abspath="$(abspath /)")
    2121endif
    2222
    2323ifneq ($(abspath ///),/)
    24   $(error )
     24  $(warning ///: abspath="$(abspath ///)")
    2525endif
    2626
    2727ifneq ($(abspath /.),/)
    28   $(error )
     28  $(warning /.: abspath="$(abspath /.)")
    2929endif
    3030
    3131ifneq ($(abspath ///.),/)
    32   $(error )
     32  $(warning ///.: abspath="$(abspath ///.)")
    3333endif
    3434
    3535ifneq ($(abspath /./),/)
    36   $(error )
     36  $(warning /./: abspath="$(abspath /./)")
    3737endif
    3838
    3939ifneq ($(abspath /.///),/)
    40   $(error )
     40  $(warning /.///: abspath="$(abspath /.///)")
    4141endif
    4242
    4343ifneq ($(abspath /..),/)
    44   $(error )
     44  $(warning /..: abspath="$(abspath /..)")
    4545endif
    4646
    4747ifneq ($(abspath ///..),/)
    48   $(error )
     48  $(warning ///..: abspath="$(abspath ///..)")
    4949endif
    5050
    5151ifneq ($(abspath /../),/)
    52   $(error )
     52  $(warning /../: abspath="$(abspath /../)")
    5353endif
    5454
    5555ifneq ($(abspath /..///),/)
    56   $(error )
     56  $(warning /..///: abspath="$(abspath /..///)")
    5757endif
    5858
    5959
    6060ifneq ($(abspath /foo/bar/..),/foo)
    61   $(error )
     61  $(warning /foo/bar/..: abspath="$(abspath /foo/bar/..)")
    6262endif
    6363
    6464ifneq ($(abspath /foo/bar/../../../baz),/baz)
    65   $(error )
     65  $(warning /foo/bar/../../../baz: abspath="$(abspath /foo/bar/../../../baz)")
    6666endif
    6767
    6868ifneq ($(abspath /foo/bar/../ /..),/foo /)
    69   $(error )
     69  $(warning /foo/bar/../ /..: abspath="$(abspath /foo/bar/../ /..)")
    7070endif
    7171
  • vendor/gnumake/current/tests/scripts/functions/error

    r53 r501  
     1#                                                                    -*-Perl-*-
     2
    13$description = "\
    24The following test creates a makefile to test the error function.";
     
    68open(MAKEFILE,"> $makefile");
    79
    8 print MAKEFILE <<'EOF';
     10print MAKEFILE 'err = $(error Error found!)
     11
    912ifdef ERROR1
    1013$(error error is $(ERROR1))
     
    2629some: ; @echo Some stuff
    2730
    28 EOF
     31testvar: ; @: $(err)
     32';
    2933
    3034close(MAKEFILE);
     
    3337
    3438&run_make_with_options($makefile, "ERROR1=yes", &get_logfile, 512);
    35 $answer = "$makefile:2: *** error is yes.  Stop.\n";
     39$answer = "$makefile:4: *** error is yes.  Stop.\n";
    3640&compare_output($answer,&get_logfile(1));
    3741
     
    3943
    4044&run_make_with_options($makefile, "ERROR2=no", &get_logfile, 512);
    41 $answer = "$makefile:6: *** error is no.  Stop.\n";
     45$answer = "$makefile:8: *** error is no.  Stop.\n";
    4246&compare_output($answer,&get_logfile(1));
    4347
     
    4549
    4650&run_make_with_options($makefile, "ERROR3=maybe", &get_logfile, 512);
    47 $answer = "Some stuff\n$makefile:10: *** error is maybe.  Stop.\n";
     51$answer = "Some stuff\n$makefile:12: *** error is maybe.  Stop.\n";
    4852&compare_output($answer,&get_logfile(1));
    4953
     
    5155
    5256&run_make_with_options($makefile, "ERROR4=definitely", &get_logfile, 512);
    53 $answer = "Some stuff\n$makefile:14: *** error is definitely.  Stop.\n";
     57$answer = "Some stuff\n$makefile:16: *** error is definitely.  Stop.\n";
     58&compare_output($answer,&get_logfile(1));
     59
     60# Test #5
     61
     62&run_make_with_options($makefile, "testvar", &get_logfile, 512);
     63$answer = "$makefile:22: *** Error found!.  Stop.\n";
    5464&compare_output($answer,&get_logfile(1));
    5565
  • vendor/gnumake/current/tests/scripts/functions/eval

    r284 r501  
    128128close(MAKEFILE);
    129129
    130 $ENV{EVAR} = '1';
     130$extraENV{EVAR} = '1';
    131131&run_make_with_options($makefile4, "", &get_logfile);
    132132$answer = "OK\n";
    133133&compare_output($answer,&get_logfile(1));
    134 
    135 delete $ENV{EVAR};
    136134
    137135
     
    152150run_make_test('
    153151define FOO
    154 all: ; @echo he\llo
     152all: ; @echo '."'".'he\llo'."'".'
    155153        @echo world
    156154endef
    157155$(eval $(FOO))
    158 ', '', 'hello
     156', '', 'he\llo
    159157world');
    160158
  • vendor/gnumake/current/tests/scripts/functions/foreach

    r53 r501  
    11#                                                                    -*-perl-*-
     2# $Id: foreach,v 1.5 2006/03/10 02:20:46 psmith Exp $
    23
    3 # Updated 6.16.93  variable "MAKE" is default was environment override
    4 # For make 3.63 and above
    5 
    6 $description = "The following test creates a makefile to verify
    7 test the foreach function.";
     4$description = "Test the foreach function.";
    85
    96$details = "This is a test of the foreach function in gnu make.
     
    1512
    1613
    17 open(MAKEFILE,"> $makefile");
     14# TEST 0
    1815
    19 # The Contents of the MAKEFILE ...
     16# Set an environment variable that we can test in the makefile.
     17$extraENV{FOOFOO} = 'foo foo';
    2018
    21 # On WIN32 systems, the user's path is found in %Path% ($Path)
    22 #
    23 $pathvar = (($port_type eq 'Windows') ? "Path" : "PATH");
     19run_make_test("space = ' '".'
     20null :=
     21auto_var = udef space CC null FOOFOO MAKE foo CFLAGS WHITE @ <
     22foo = bletch null @ garf
     23av = $(foreach var, $(auto_var), $(origin $(var)) )
     24override WHITE := BLACK
     25for_var = $(addsuffix .c,foo $(null) $(foo) $(space) $(av) )
     26fe = $(foreach var2, $(for_var),$(subst .c,.o, $(var2) ) )
     27all: auto for2
     28auto : ; @echo $(av)
     29for2: ; @echo $(fe)',
     30              '-e WHITE=WHITE CFLAGS=',
     31              "undefined file default file environment default file command line override automatic automatic
     32foo.o bletch.o null.o @.o garf.o .o    .o undefined.o file.o default.o file.o environment.o default.o file.o command.o line.o override.o automatic.o automatic.o");
    2433
    25 print MAKEFILE <<EOF;
    26 foo = bletch null \@ garf
    27 null :=
    28 space = ' '
    29 auto_var = udef space CC null $pathvar MAKE foo CFLAGS WHITE \@ <
    30 av = \$(foreach var, \$(auto_var), \$(origin \$(var)) )
    31 override WHITE := BLACK
    32 for_var = \$(addsuffix .c,foo \$(null) \$(foo) \$(space) \$(av) )
    33 fe = \$(foreach var2, \$(for_var),\$(subst .c,.o, \$(var2) ) )
    34 all: auto for2
    35 auto :
    36 \t\@echo \$(av)
    37 for2:
    38 \t\@echo \$(fe)
    39 EOF
     34delete $extraENV{FOOFOO};
    4035
    41 close(MAKEFILE);
     36# TEST 1: Test that foreach variables take precedence over global
     37# variables in a global scope (like inside an eval).  Tests bug #11913
    4238
    43 &run_make_with_options($makefile,
    44                       "-e WHITE=WHITE CFLAGS=",
    45                       &get_logfile);
     39run_make_test('
     40.PHONY: all target
     41all: target
    4642
    47 # Create the answer to what should be produced by this Makefile
    48 $answer = "undefined file default file environment default file command line override automatic automatic
    49 foo.o bletch.o null.o @.o garf.o .o    .o undefined.o file.o default.o file.o environment.o default.o file.o command.o line.o override.o automatic.o automatic.o\n";
     43x := BAD
    5044
    51 &compare_output($answer,&get_logfile(1));
     45define mktarget
     46target: x := $(x)
     47target: ; @echo "$(x)"
     48endef
     49
     50x := GLOBAL
     51
     52$(foreach x,FOREACH,$(eval $(value mktarget)))',
     53              '',
     54              'FOREACH');
     55
     56
     57# TEST 2: Check some error conditions.
     58
     59run_make_test('
     60x = $(foreach )
     61y = $x
     62
     63all: ; @echo $y',
     64              '',
     65              "#MAKEFILE#:2: *** insufficient number of arguments (1) to function `foreach'.  Stop.",
     66              512);
     67
     68run_make_test('
     69x = $(foreach )
     70y := $x
     71
     72all: ; @echo $y',
     73              '',
     74              "#MAKEFILE#:2: *** insufficient number of arguments (1) to function `foreach'.  Stop.",
     75              512);
    5276
    53771;
  • vendor/gnumake/current/tests/scripts/functions/origin

    r153 r501  
    1717
    1818# Set an environment variable
    19 $ENV{MAKETEST} = 1;
     19$extraENV{MAKETEST} = 1;
    2020
    21 open(MAKEFILE,"> $makefile");
    22 
    23 print MAKEFILE <<EOF;
     21run_make_test('
    2422foo := bletch garf
    25 auto_var = udef CC MAKETEST MAKE foo CFLAGS WHITE \@
    26 av = \$(foreach var, \$(auto_var), \$(origin \$(var)) )
     23auto_var = undefined CC MAKETEST MAKE foo CFLAGS WHITE @
     24av = $(foreach var, $(auto_var), $(origin $(var)) )
    2725override WHITE := BLACK
    2826all: auto
    29 \t\@echo \$(origin undefined)
    30 \t\@echo \$(origin CC)
    31 \t\@echo \$(origin MAKETEST)
    32 \t\@echo \$(origin MAKE)
    33 \t\@echo \$(origin foo)
    34 \t\@echo \$(origin CFLAGS)
    35 \t\@echo \$(origin WHITE)
    36 \t\@echo \$(origin \@)
     27        @echo $(origin undefined)
     28        @echo $(origin CC)
     29        @echo $(origin MAKETEST)
     30        @echo $(origin MAKE)
     31        @echo $(origin foo)
     32        @echo $(origin CFLAGS)
     33        @echo $(origin WHITE)
     34        @echo $(origin @)
    3735auto :
    38 \t\@echo \$(av)
    39 EOF
    40 
    41 close(MAKEFILE);
    42 
    43 &run_make_with_options($makefile,
    44                       "-e WHITE=WHITE CFLAGS=",
    45                       &get_logfile);
    46 
    47 # Create the answer to what should be produced by this Makefile
    48 $answer = "undefined default environment default file command line override automatic
     36        @echo $(av)',
     37              '-e WHITE=WHITE CFLAGS=',
     38              'undefined default environment default file command line override automatic
    4939undefined
    5040default
     
    5444command line
    5545override
    56 automatic\n";
     46automatic');
    5747
    58 
    59 &compare_output($answer,&get_logfile(1));
     48# Reset an environment variable
     49delete $extraENV{MAKETEST};
    6050
    61511;
  • vendor/gnumake/current/tests/scripts/functions/realpath

    r283 r501  
    2121endif
    2222
    23 ifneq ($(realpath ///),/)
    24   $(error )
    25 endif
    26 
    2723ifneq ($(realpath /.),/)
    28   $(error )
    29 endif
    30 
    31 ifneq ($(realpath ///.),/)
    3224  $(error )
    3325endif
     
    4234
    4335ifneq ($(realpath /..),/)
    44   $(error )
    45 endif
    46 
    47 ifneq ($(realpath ///..),/)
    4836  $(error )
    4937endif
     
    6452all: ; @:
    6553',
    66 '',
    67 '');
     54              '',
     55              '');
     56
     57# On Windows platforms, "//" means something special.  So, don't do these
     58# tests there.
     59
     60if ($port_type ne 'W32') {
     61  run_make_test('
     62ifneq ($(realpath ///),/)
     63  $(error )
     64endif
     65
     66ifneq ($(realpath ///.),/)
     67  $(error )
     68endif
     69
     70ifneq ($(realpath ///..),/)
     71  $(error )
     72endif
     73
     74.PHONY: all
     75all: ; @:',
     76                '',
     77                '');
     78}
    6879
    6980
  • vendor/gnumake/current/tests/scripts/functions/warning

    r53 r501  
     1#                                                                    -*-Perl-*-
     2
    13$description = "\
    24The following test creates a makefile to test the warning function.";
  • vendor/gnumake/current/tests/scripts/functions/wildcard

    r284 r501  
    1414the '*' wildcard as in the first test";
    1515
    16 if ($vos)
    17 {
    18    $delete_command = "delete_file -no_ask";
    19 }
    20 else
    21 {
    22    $delete_command = "rm";
    23 }
    24 
    25 
    2616open(MAKEFILE,"> $makefile");
    2717
     
    3020print MAKEFILE <<EOM;
    3121.PHONY: print1 print2 clean
    32 print1: ;\@echo \$(wildcard example.*)
     22print1: ;\@echo \$(sort \$(wildcard example.*))
    3323print2:
    34 \t\@echo \$(wildcard example.?)
    35 \t\@echo \$(wildcard example.[a-z0-9])
    36 \t\@echo \$(wildcard example.[!A-Za-z_\\!])
     24\t\@echo \$(sort \$(wildcard example.?))
     25\t\@echo \$(sort \$(wildcard example.[a-z0-9]))
     26\t\@echo \$(sort \$(wildcard example.[!A-Za-z_\\!]))
    3727clean:
    38 \t$delete_command \$(wildcard example.*)
     28\t$delete_command \$(sort \$(wildcard example.*))
    3929EOM
    4030
  • vendor/gnumake/current/tests/scripts/functions/word

    r284 r501  
    4747# Test error conditions
    4848
    49 $makefile2 = &get_tmpfile;
    50 
    51 open(MAKEFILE, "> $makefile2");
    52 print MAKEFILE <<'EOF';
    53 FOO = foo bar biz baz
     49run_make_test('FOO = foo bar biz baz
    5450
    5551word-e1: ; @echo $(word ,$(FOO))
     
    5955wordlist-e1: ; @echo $(wordlist ,,$(FOO))
    6056wordlist-e2: ; @echo $(wordlist abc ,,$(FOO))
    61 wordlist-e3: ; @echo $(wordlist 1, 12a ,$(FOO))
     57wordlist-e3: ; @echo $(wordlist 1, 12a ,$(FOO))',
     58              'word-e1',
     59              "#MAKEFILE#:3: *** non-numeric first argument to `word' function: ''.  Stop.",
     60              512);
    6261
    63 EOF
     62run_make_test(undef,
     63              'word-e2',
     64              "#MAKEFILE#:4: *** non-numeric first argument to `word' function: 'abc '.  Stop.",
     65              512);
    6466
    65 close(MAKEFILE);
     67run_make_test(undef,
     68              'word-e3',
     69              "#MAKEFILE#:5: *** non-numeric first argument to `word' function: '1a'.  Stop.",
     70              512);
    6671
    67 &run_make_with_options($makefile2, 'word-e1', &get_logfile, 512);
    68 $answer = "$makefile2:3: *** non-numeric first argument to `word' function: ''.  Stop.\n";
    69 &compare_output($answer, &get_logfile(1));
     72run_make_test(undef,
     73              'wordlist-e1',
     74              "#MAKEFILE#:7: *** non-numeric first argument to `wordlist' function: ''.  Stop.",
     75              512);
    7076
    71 &run_make_with_options($makefile2, 'word-e2', &get_logfile, 512);
    72 $answer = "$makefile2:4: *** non-numeric first argument to `word' function: 'abc '.  Stop.\n";
    73 &compare_output($answer, &get_logfile(1));
     77run_make_test(undef,
     78              'wordlist-e2',
     79              "#MAKEFILE#:8: *** non-numeric first argument to `wordlist' function: 'abc '.  Stop.",
     80              512);
    7481
    75 &run_make_with_options($makefile2, 'word-e3', &get_logfile, 512);
    76 $answer = "$makefile2:5: *** non-numeric first argument to `word' function: '1a'.  Stop.\n";
    77 &compare_output($answer, &get_logfile(1));
     82run_make_test(undef,
     83              'wordlist-e3',
     84              "#MAKEFILE#:9: *** non-numeric second argument to `wordlist' function: ' 12a '.  Stop.",
     85              512);
    7886
    79 &run_make_with_options($makefile2, 'wordlist-e1', &get_logfile, 512);
    80 $answer = "$makefile2:7: *** non-numeric first argument to `wordlist' function: ''.  Stop.\n";
    81 &compare_output($answer, &get_logfile(1));
     87# Test error conditions again, but this time in a variable reference
    8288
    83 &run_make_with_options($makefile2, 'wordlist-e2', &get_logfile, 512);
    84 $answer = "$makefile2:8: *** non-numeric first argument to `wordlist' function: 'abc '.  Stop.\n";
    85 &compare_output($answer, &get_logfile(1));
     89run_make_test('FOO = foo bar biz baz
    8690
    87 &run_make_with_options($makefile2, 'wordlist-e3', &get_logfile, 512);
    88 $answer = "$makefile2:9: *** non-numeric second argument to `wordlist' function: ' 12a '.  Stop.\n";
    89 &compare_output($answer, &get_logfile(1));
     91W = $(word $x,$(FOO))
     92WL = $(wordlist $s,$e,$(FOO))
     93
     94word-e: ; @echo $(W)
     95wordlist-e: ; @echo $(WL)',
     96              'word-e x=',
     97              "#MAKEFILE#:3: *** non-numeric first argument to `word' function: ''.  Stop.",
     98              512);
     99
     100run_make_test(undef,
     101              'word-e x=abc',
     102              "#MAKEFILE#:3: *** non-numeric first argument to `word' function: 'abc'.  Stop.",
     103              512);
     104
     105run_make_test(undef,
     106              'word-e x=0',
     107              "#MAKEFILE#:3: *** first argument to `word' function must be greater than 0.  Stop.",
     108              512);
     109
     110run_make_test(undef,
     111              'wordlist-e s= e=',
     112              "#MAKEFILE#:4: *** non-numeric first argument to `wordlist' function: ''.  Stop.",
     113              512);
     114
     115run_make_test(undef,
     116              'wordlist-e s=abc e=',
     117              "#MAKEFILE#:4: *** non-numeric first argument to `wordlist' function: 'abc'.  Stop.",
     118              512);
     119
     120run_make_test(undef,
     121              'wordlist-e s=4 e=12a',
     122              "#MAKEFILE#:4: *** non-numeric second argument to `wordlist' function: '12a'.  Stop.",
     123              512);
     124
     125run_make_test(undef,
     126              'wordlist-e s=0 e=12',
     127              "#MAKEFILE#:4: *** invalid first argument to `wordlist' function: `0'.  Stop.",
     128              512);
    90129
    91130
  • vendor/gnumake/current/tests/scripts/misc/general3

    r53 r501  
    66break.";
    77
    8 $makefile2 = &get_tmpfile;
    9 
    10 open(MAKEFILE,"> $makefile");
    11 
    12 # The contents of the Makefile ...
    13 
    14 print MAKEFILE <<EOF;
     8run_make_test("
    159# We want to allow both empty commands _and_ commands that resolve to empty.
    1610EMPTY =
     
    3226\$(STR)
    3327
    34 \$(STR) \$(TAB)
    35 
    36 EOF
    37 
    38 close(MAKEFILE);
    39 
    40 &run_make_with_options($makefile,"",&get_logfile);
    41 $answer = "$make_name: Nothing to be done for `all'.\n";
    42 &compare_output($answer,&get_logfile(1));
    43 
     28\$(STR) \$(TAB)",
     29              '', "#MAKE#: Nothing to be done for `all'.");
    4430
    4531# TEST 2
    4632
    4733# Make sure files without trailing newlines are handled properly.
     34# Have to use the old style invocation to test this.
     35
     36$makefile2 = &get_tmpfile;
    4837
    4938open(MAKEFILE, "> $makefile2");
     
    5544&compare_output($answer,&get_logfile(1));
    5645
     46# TEST 3
     47
     48# Check semicolons in variable references
     49
     50run_make_test('
     51$(if true,$(info true; true))
     52all: ; @:
     53',
     54              '', 'true; true');
     55
     56# TEST 4
     57
     58# Check that backslashes in command scripts are handled according to POSIX.
     59# Checks Savannah bug # 1332.
     60
     61# Test the fastpath / no quotes
     62run_make_test('
     63all:
     64        @echo foo\
     65bar
     66        @echo foo\
     67        bar
     68        @echo foo\
     69    bar
     70        @echo foo\
     71            bar
     72        @echo foo \
     73bar
     74        @echo foo \
     75        bar
     76        @echo foo \
     77    bar
     78        @echo foo \
     79            bar
     80',
     81              '', 'foobar
     82foobar
     83foo bar
     84foo bar
     85foo bar
     86foo bar
     87foo bar
     88foo bar');
     89
     90# Test the fastpath / single quotes
     91run_make_test("
     92all:
     93        \@echo 'foo\\
     94bar'
     95        \@echo 'foo\\
     96        bar'
     97        \@echo 'foo\\
     98    bar'
     99        \@echo 'foo\\
     100            bar'
     101        \@echo 'foo \\
     102bar'
     103        \@echo 'foo \\
     104        bar'
     105        \@echo 'foo \\
     106    bar'
     107        \@echo 'foo \\
     108            bar'
     109",
     110              '', 'foo\
     111bar
     112foo\
     113bar
     114foo\
     115    bar
     116foo\
     117    bar
     118foo \
     119bar
     120foo \
     121bar
     122foo \
     123    bar
     124foo \
     125    bar');
     126
     127# Test the fastpath / double quotes
     128run_make_test('
     129all:
     130        @echo "foo\
     131bar"
     132        @echo "foo\
     133        bar"
     134        @echo "foo\
     135    bar"
     136        @echo "foo\
     137            bar"
     138        @echo "foo \
     139bar"
     140        @echo "foo \
     141        bar"
     142        @echo "foo \
     143    bar"
     144        @echo "foo \
     145            bar"
     146',
     147              '', 'foobar
     148foobar
     149foo    bar
     150foo    bar
     151foo bar
     152foo bar
     153foo     bar
     154foo     bar');
     155
     156# Test the slow path / no quotes
     157run_make_test('
     158all:
     159        @echo hi; echo foo\
     160bar
     161        @echo hi; echo foo\
     162        bar
     163        @echo hi; echo foo\
     164 bar
     165        @echo hi; echo foo\
     166         bar
     167        @echo hi; echo foo \
     168bar
     169        @echo hi; echo foo \
     170        bar
     171        @echo hi; echo foo \
     172 bar
     173        @echo hi; echo foo \
     174         bar
     175',
     176              '', 'hi
     177foobar
     178hi
     179foobar
     180hi
     181foo bar
     182hi
     183foo bar
     184hi
     185foo bar
     186hi
     187foo bar
     188hi
     189foo bar
     190hi
     191foo bar');
     192
     193# Test the slow path / no quotes.  This time we put the slow path
     194# determination _after_ the backslash-newline handling.
     195run_make_test('
     196all:
     197        @echo foo\
     198bar; echo hi
     199        @echo foo\
     200        bar; echo hi
     201        @echo foo\
     202 bar; echo hi
     203        @echo foo\
     204         bar; echo hi
     205        @echo foo \
     206bar; echo hi
     207        @echo foo \
     208        bar; echo hi
     209        @echo foo \
     210 bar; echo hi
     211        @echo foo \
     212         bar; echo hi
     213',
     214              '', 'foobar
     215hi
     216foobar
     217hi
     218foo bar
     219hi
     220foo bar
     221hi
     222foo bar
     223hi
     224foo bar
     225hi
     226foo bar
     227hi
     228foo bar
     229hi');
     230
     231# Test the slow path / single quotes
     232run_make_test("
     233all:
     234        \@echo hi; echo 'foo\\
     235bar'
     236        \@echo hi; echo 'foo\\
     237        bar'
     238        \@echo hi; echo 'foo\\
     239    bar'
     240        \@echo hi; echo 'foo\\
     241            bar'
     242        \@echo hi; echo 'foo \\
     243bar'
     244        \@echo hi; echo 'foo \\
     245        bar'
     246        \@echo hi; echo 'foo \\
     247    bar'
     248        \@echo hi; echo 'foo \\
     249            bar'
     250",
     251              '', 'hi
     252foo\
     253bar
     254hi
     255foo\
     256bar
     257hi
     258foo\
     259    bar
     260hi
     261foo\
     262    bar
     263hi
     264foo \
     265bar
     266hi
     267foo \
     268bar
     269hi
     270foo \
     271    bar
     272hi
     273foo \
     274    bar');
     275
     276# Test the slow path / double quotes
     277run_make_test('
     278all:
     279        @echo hi; echo "foo\
     280bar"
     281        @echo hi; echo "foo\
     282        bar"
     283        @echo hi; echo "foo\
     284    bar"
     285        @echo hi; echo "foo\
     286            bar"
     287        @echo hi; echo "foo \
     288bar"
     289        @echo hi; echo "foo \
     290        bar"
     291        @echo hi; echo "foo \
     292    bar"
     293        @echo hi; echo "foo \
     294            bar"
     295',
     296              '', 'hi
     297foobar
     298hi
     299foobar
     300hi
     301foo    bar
     302hi
     303foo    bar
     304hi
     305foo bar
     306hi
     307foo bar
     308hi
     309foo     bar
     310hi
     311foo     bar');
    57312
    583131;
  • vendor/gnumake/current/tests/scripts/misc/general4

    r284 r501  
    66break.";
    77
    8 open(MAKEFILE,"> $makefile");
    9 print MAKEFILE <<'EOF';
     8run_make_test('
    109# Make sure that subdirectories built as prerequisites are actually handled
    1110# properly.
     
    1716dir/subdir/file.b: dir/subdir ; @echo touch dir/subdir/file.b
    1817
    19 dir/subdir/%.a: dir/subdir/%.b ; @echo cp $< $@
    20 EOF
    21 close(MAKEFILE);
    22 
    23 &run_make_with_options($makefile,"",&get_logfile);
    24 $answer = "mkdir -p dir/subdir\ntouch dir/subdir/file.b\ncp dir/subdir/file.b dir/subdir/file.a\n";
    25 &compare_output($answer,&get_logfile(1));
     18dir/subdir/%.a: dir/subdir/%.b ; @echo cp $< $@',
     19              '', "mkdir -p dir/subdir\ntouch dir/subdir/file.b\ncp dir/subdir/file.b dir/subdir/file.a\n");
    2620
    2721# Test implicit rules
     
    4842unlink('bar');
    4943
     44
     45# Test implicit rules with '$' in the name (see se_implicit)
     46
     47run_make_test(q!
     48%.foo : baz$$bar ; @echo 'done $<'
     49%.foo : bar$$baz ; @echo 'done $<'
     50test.foo:
     51baz$$bar bar$$baz: ; @echo '$@'
     52!,
     53              '',
     54              "baz\$bar\ndone baz\$bar");
     55
     56
     57# Test implicit rules with '$' in the name (see se_implicit)
     58# Use the '$' in the pattern.
     59
     60run_make_test(q!
     61%.foo : %$$bar ; @echo 'done $<'
     62test.foo:
     63test$$bar: ; @echo '$@'
     64!,
     65              '',
     66              "test\$bar\ndone test\$bar");
     67
     68# Make sure that subdirectories built as prerequisites are actually handled
     69# properly... this time with '$'
     70
     71run_make_test(q!
     72
     73all: dir/subdir/file.$$a
     74
     75dir/subdir: ; @echo mkdir -p '$@'
     76
     77dir/subdir/file.$$b: dir/subdir ; @echo touch '$@'
     78
     79dir/subdir/%.$$a: dir/subdir/%.$$b ; @echo 'cp $< $@'
     80!,
     81              '', "mkdir -p dir/subdir\ntouch dir/subdir/file.\$b\ncp dir/subdir/file.\$b dir/subdir/file.\$a\n");
     82
    50831;
  • vendor/gnumake/current/tests/scripts/options/dash-B

    r284 r501  
    3232run_make_test(undef, '-B', 'cp bar.x foo');
    3333
    34 
    3534# Clean up
    3635
    3736rmfiles('bar.x', 'foo');
    3837
     38# Test -B with the re-exec feature: we don't want to re-exec forever
     39# Savannah bug # 7566
     40
     41run_make_test('
     42all: ; @:
     43$(info MAKE_RESTARTS=$(MAKE_RESTARTS))
     44include foo.x
     45foo.x: ; @touch $@
     46',
     47              '-B', 'MAKE_RESTARTS=
     48#MAKEFILE#:4: foo.x: No such file or directory
     49MAKE_RESTARTS=1');
     50
     51rmfiles('foo.x');
     52
     53# Test -B with the re-exec feature: we DO want -B in the "normal" part of the
     54# makefile.
     55
     56&touch('blah.x');
     57
     58run_make_test('
     59all: blah.x ; @echo $@
     60$(info MAKE_RESTARTS=$(MAKE_RESTARTS))
     61include foo.x
     62foo.x: ; @touch $@
     63blah.x: ; @echo $@
     64',
     65              '-B', 'MAKE_RESTARTS=
     66#MAKEFILE#:4: foo.x: No such file or directory
     67MAKE_RESTARTS=1
     68blah.x
     69all');
     70
     71rmfiles('foo.x', 'blah.x');
     72
    39731;
  • vendor/gnumake/current/tests/scripts/options/dash-I

    r53 r501  
     1#                                                                    -*-perl-*-
     2
    13$description ="The following test creates a makefile to test the -I option.";
    24
  • vendor/gnumake/current/tests/scripts/options/dash-e

    r53 r501  
    55$details = "";
    66
    7 $ENV{GOOGLE} = 'boggle';
     7$extraENV{GOOGLE} = 'boggle';
    88
    99open(MAKEFILE,"> $makefile");
  • vendor/gnumake/current/tests/scripts/options/symlinks

    r283 r501  
    66
    77# Only run these tests if the system sypports symlinks
    8 if (eval { symlink("",""); 1 }) {
     8
     9# Apparently the Windows port of Perl reports that it does support symlinks
     10# (in that the symlink() function doesn't fail) but it really doesn't, so
     11# check for it explicitly.
     12
     13if ($port_type eq 'W32' || !( eval { symlink("",""); 1 })) {
     14  # This test is N/A
     15  -1;
     16} else {
    917
    1018  # Set up a symlink sym -> dep
     
    4351
    4452  rmfiles('targ', 'dep', 'sym', 'dep1');
     53
     54  # Check handling when symlinks point to non-existent files.  Without -L we
     55  # should get an error: with -L we should use the timestamp of the symlink.
     56
     57  symlink("../$dirname/dep", 'sym');
     58  run_make_test('targ: sym ; @echo make $@ from $<', '',
     59                "#MAKE#: *** No rule to make target `sym', needed by `targ'.  Stop.", 512);
     60
     61  run_make_test('targ: sym ; @echo make $@ from $<', '-L',
     62                'make targ from sym');
     63
     64
     65  rmfiles('targ', 'sym');
     66
     67  1;
    4568}
    46 
    47 1;
  • vendor/gnumake/current/tests/scripts/targets/FORCE

    r284 r501  
     1#                                                                    -*-perl-*-
     2
    13$description = "The following tests rules without Commands or Dependencies.";
    24
    35$details = "If the rule ...\n";
    4 
    5 if ($vos)
    6 {
    7    $delete_command = "delete_file";
    8 }
    9 else
    10 {
    11    $delete_command = "rm";
    12 }
    136
    147open(MAKEFILE,"> $makefile");
  • vendor/gnumake/current/tests/scripts/targets/PHONY

    r284 r501  
     1#                                                                    -*-perl-*-
     2
    13$description = "The following tests the use of a PHONY target.  It makes\n"
    24              ."sure that the rules under a target get executed even if\n"
     
    810          ."directory.  Although this file exists, the rule under the target\n"
    911          ."clean should still execute because of it's phony status.";
    10 
    11 if ($vos)
    12 {
    13    $delete_command = "delete_file";
    14 }
    15 else
    16 {
    17    $delete_command = "rm";
    18 }
    1912
    2013$example = "EXAMPLE_FILE";
  • vendor/gnumake/current/tests/scripts/targets/SILENT

    r284 r501  
     1#                                                                    -*-perl-*-
     2
    13$description = "The following tests the special target .SILENT.  By simply\n"
    24              ."mentioning this as a target, it tells make not to print\n"
     
    57$details = "This test is the same as the clean test except that it should\n"
    68          ."not echo its command before deleting the specified file.\n";
    7 
    8 if ($vos)
    9 {
    10    $delete_command = "delete_file";
    11 }
    12 else
    13 {
    14    $delete_command = "rm";
    15 }
    169
    1710$example = "EXAMPLE_FILE";
  • vendor/gnumake/current/tests/scripts/variables/SHELL

    r283 r501  
    55# Find the default value when SHELL is not set.  On UNIX it will be /bin/sh,
    66# but on other platforms who knows?
    7 $oshell = $ENV{SHELL};
     7resetENV();
    88delete $ENV{SHELL};
    9 $mshell = `echo 'all:;\@echo \$(SHELL)' | $make_name -f-`;
     9$mshell = `echo 'all:;\@echo \$(SHELL)' | $make_path -f-`;
    1010chop $mshell;
    1111
    1212# According to POSIX, the value of SHELL in the environment has no impact on
    1313# the value in the makefile.
     14# Note %extraENV takes precedence over the default value for the shell.
    1415
    15 $ENV{SHELL} = '/dev/null';
     16$extraENV{SHELL} = '/dev/null';
    1617run_make_test('all:;@echo "$(SHELL)"', '', $mshell);
    1718
     
    1920# exported to the subshell!  I wanted to set SHELL to be $^X (perl) in the
    2021# makefile, but make runs $(SHELL) -c 'commandline' and that doesn't work at
    21 # all when $(SHELL) is perl :-/.  So, we just add an extra initial / and hope
    22 # for the best on non-UNIX platforms :-/.
     22# all when $(SHELL) is perl :-/.  So, we just add an extra initial /./ which
     23# works well on UNIX and seems to work OK on at least some non-UNIX systems.
    2324
    24 $ENV{SHELL} = $mshell;
     25$extraENV{SHELL} = $mshell;
    2526
    26 run_make_test("SHELL := /$mshell\n".'
     27run_make_test("SHELL := /./$mshell\n".'
    2728all:;@echo "$(SHELL) $$SHELL"
    28 ', '', "/$mshell $mshell");
     29', '', "/./$mshell $mshell");
    2930
    3031# As a GNU make extension, if make's SHELL variable is explicitly exported,
    3132# then we really _DO_ export it.
    3233
    33 run_make_test("export SHELL := /$mshell\n".'
     34$extraENV{SHELL} = $mshell;
     35
     36run_make_test("export SHELL := /./$mshell\n".'
    3437all:;@echo "$(SHELL) $$SHELL"
    35 ', '', "/$mshell /$mshell");
     38', '', "/./$mshell /./$mshell");
    3639
    3740
     
    3942# variable.
    4043
    41 run_make_test("all: SHELL := /$mshell\n".'
     44$extraENV{SHELL} = $mshell;
     45
     46run_make_test("all: SHELL := /./$mshell\n".'
    4247all:;@echo "$(SHELL) $$SHELL"
    43 ', '', "/$mshell $mshell");
     48', '', "/./$mshell $mshell");
    4449
    45 run_make_test("all: export SHELL := /$mshell\n".'
     50$extraENV{SHELL} = $mshell;
     51
     52run_make_test("all: export SHELL := /./$mshell\n".'
    4653all:;@echo "$(SHELL) $$SHELL"
    47 ', '', "/$mshell $mshell");
     54', '', "/./$mshell $mshell");
    4855
    49561;
  • vendor/gnumake/current/tests/scripts/variables/automatic

    r284 r501  
    2828close(MAKEFILE);
    2929
    30 # TEST #1 -- simple test
     30# TEST #0 -- simple test
    3131# -------
    3232
     
    4747unlink(qw(foo.x bar.y baz.z));
    4848
    49 # TEST #2 -- test the SysV emulation of $$@ etc.
     49# TEST #1 -- test the SysV emulation of $$@ etc.
    5050# -------
    5151
     
    5555print MAKEFILE "dir = $dir\n";
    5656print MAKEFILE <<'EOF';
     57.SECONDEXPANSION:
    5758.SUFFIXES:
    5859.DEFAULT: ; @echo '$@'
     
    7980&compare_output($answer, &get_logfile(1));
    8081
    81 # TEST #3 -- test for Savannah bug #12320.
     82# TEST #2 -- test for Savannah bug #12320.
    8283#
    8384run_make_test('
     
    8788        @echo $*
    8889
    89 mbr.src: ; @:
     90mbr.src: ; @:',
     91              '',
     92              'mbr');
    9093
    91 ',
    92 '',
    93 'mbr
    94 ');
     94# TEST #3 -- test for Savannah bug #8154
     95# Make sure that nonexistent prerequisites are listed in $?, since they are
     96# considered reasons for the target to be rebuilt.
     97#
     98# This was undone due to Savannah bug #16002.  We'll re-do it in the next
     99# release.  See Savannah bug #16051.
     100
     101#touch('foo');
     102#
     103#run_make_test('
     104#foo: bar ; @echo "\$$? = $?"
     105#bar: ;',
     106#              '',
     107#              '$? = bar');
     108#
     109#unlink('foo');
    95110
    961111;
  • vendor/gnumake/current/tests/test_driver.pl

    r280 r501  
    11#!/usr/bin/perl
    22# -*-perl-*-
    3 
     3#
    44# Modification history:
    55# Written 91-12-02 through 92-01-01 by Stephen McGee.
    66# Modified 92-02-11 through 92-02-22 by Chris Arthur to further generalize.
    7 # End of modification history
     7#
     8# Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
     9# 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
     10# This file is part of GNU Make.
     11#
     12# GNU Make is free software; you can redistribute it and/or modify it under the
     13# terms of the GNU General Public License as published by the Free Software
     14# Foundation; either version 2, or (at your option) any later version.
     15#
     16# GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     17# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     18# A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     19#
     20# You should have received a copy of the GNU General Public License along with
     21# GNU Make; see the file COPYING.  If not, write to the Free Software
     22# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
     23
    824
    925# Test driver routines used by a number of test suites, including
    1026# those for SCS, make, roll_dir, and scan_deps (?).
    11 
     27#
    1228# this routine controls the whole mess; each test suite sets up a few
    1329# variables and then calls &toplevel, which does all the real work.
    1430
    15 # $Id: test_driver.pl,v 1.14 2005/02/28 07:48:23 psmith Exp $
     31# $Id: test_driver.pl,v 1.19 2006/03/10 02:20:45 psmith Exp $
    1632
    1733
     
    3349$test_passed = 1;
    3450
     51
     52# %makeENV is the cleaned-out environment.
     53%makeENV = ();
     54
     55# %extraENV are any extra environment variables the tests might want to set.
     56# These are RESET AFTER EVERY TEST!
     57%extraENV = ();
     58
     59# %origENV is the caller's original environment
     60%origENV = %ENV;
     61
     62sub resetENV
     63{
     64  # We used to say "%ENV = ();" but this doesn't work in Perl 5.000
     65  # through Perl 5.004.  It was fixed in Perl 5.004_01, but we don't
     66  # want to require that here, so just delete each one individually.
     67  foreach $v (keys %ENV) {
     68    delete $ENV{$v};
     69  }
     70
     71  %ENV = %makeENV;
     72  foreach $v (keys %extraENV) {
     73    $ENV{$v} = $extraENV{$v};
     74    delete $extraENV{$v};
     75  }
     76}
     77
    3578sub toplevel
    3679{
    37   # Get a clean environment
    38 
    39   %makeENV = ();
    40 
    4180  # Pull in benign variables from the user's environment
    4281  #
     
    5897  %origENV = %ENV;
    5998
    60   # We used to say "%ENV = ();" but this doesn't work in Perl 5.000
    61   # through Perl 5.004.  It was fixed in Perl 5.004_01, but we don't
    62   # want to require that here, so just delete each one individually.
    63 
    64   foreach $v (keys %ENV) {
    65     delete $ENV{$v};
    66   }
    67 
    68   %ENV = %makeENV;
     99  resetENV();
    69100
    70101  $| = 1;                     # unbuffered output
     
    134165    opendir (SCRIPTDIR, $scriptpath)
    135166        || &error ("Couldn't opendir $scriptpath: $!\n");
    136     @dirs = grep (!/^(\.\.?|CVS|RCS)$/, readdir (SCRIPTDIR) );
     167    @dirs = grep (!/^(\..*|CVS|RCS)$/, readdir (SCRIPTDIR) );
    137168    closedir (SCRIPTDIR);
    138169    foreach $dir (@dirs)
    139170    {
    140       next if ($dir =~ /^\.\.?$/ || $dir eq 'CVS' || $dir eq 'RCS'
    141                || ! -d "$scriptpath/$dir");
     171      next if ($dir =~ /^(\..*|CVS|RCS)$/ || ! -d "$scriptpath/$dir");
    142172      push (@rmdirs, $dir);
    143173      mkdir ("$workpath/$dir", 0777)
     
    145175      opendir (SCRIPTDIR, "$scriptpath/$dir")
    146176          || &error ("Couldn't opendir $scriptpath/$dir: $!\n");
    147       @files = grep (!/^(\.\.?|CVS|RCS)$/, readdir (SCRIPTDIR) );
     177      @files = grep (!/^(\..*|CVS|RCS|.*~)$/, readdir (SCRIPTDIR) );
    148178      closedir (SCRIPTDIR);
    149179      foreach $test (@files)
    150180      {
    151         next if $test =~ /~$/ || -d $test;
     181        -d $test and next;
    152182        push (@TESTS, "$dir/$test");
    153183      }
     
    398428      $baseext = 'b';
    399429      $extext = '';
    400    }
    401     else {
     430    } else {
    402431      $logext = 'log';
    403432      $diffext = 'diff';
     
    430459    {
    431460      $suite_passed = 0;
    432       if (length ($@))
    433       {
     461      if (length ($@)) {
    434462        warn "\n*** Test died ($testname): $@\n";
    435       }
    436       else
    437       {
     463      } else {
    438464        warn "\n*** Couldn't run $perl_testname\n";
    439465      }
     
    461487      }
    462488    }
    463     elsif ($code > 0) {
     489    elsif (!defined $code || $code > 0) {
    464490      $status = "FAILED ($tests_passed/$tests_run passed)";
    465491    }
     
    745771  local ($code);
    746772
     773  # We reset this before every invocation.  On Windows I think there is only
     774  # one environment, not one per process, so I think that variables set in
     775  # test scripts might leak into subsequent tests if this isn't reset--???
     776  resetENV();
     777
    747778  print "\nrun_command: @_\n" if $debug;
    748779  $code = system @_;
     
    761792  local ($filename) = shift;
    762793  local ($code);
     794
     795  # We reset this before every invocation.  On Windows I think there is only
     796  # one environment, not one per process, so I think that variables set in
     797  # test scripts might leak into subsequent tests if this isn't reset--???
     798  resetENV();
    763799
    764800  &attach_default_output ($filename);
  • vendor/gnumake/current/variable.c

    r280 r501  
    11/* Internals of variables for GNU Make.
    2 Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1996, 1997,
    3 2002 Free Software Foundation, Inc.
     2Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
     31998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software
     4Foundation, Inc.
    45This file is part of GNU Make.
    56
    6 GNU Make is free software; you can redistribute it and/or modify
    7 it under the terms of the GNU General Public License as published by
    8 the Free Software Foundation; either version 2, or (at your option)
    9 any later version.
    10 
    11 GNU Make is distributed in the hope that it will be useful,
    12 but WITHOUT ANY WARRANTY; without even the implied warranty of
    13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    14 GNU General Public License for more details.
    15 
    16 You should have received a copy of the GNU General Public License
    17 along with GNU Make; see the file COPYING.  If not, write to
    18 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    19 Boston, MA 02111-1307, USA.  */
     7GNU Make is free software; you can redistribute it and/or modify it under the
     8terms of the GNU General Public License as published by the Free Software
     9Foundation; either version 2, or (at your option) any later version.
     10
     11GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     12WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     13A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     14
     15You should have received a copy of the GNU General Public License along with
     16GNU Make; see the file COPYING.  If not, write to the Free Software
     17Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
    2018
    2119#include "make.h"
     20
     21#include <assert.h>
     22
    2223#include "dep.h"
    2324#include "filedef.h"
     
    450451initialize_file_variables (struct file *file, int reading)
    451452{
    452   register struct variable_set_list *l = file->variables;
     453  struct variable_set_list *l = file->variables;
    453454
    454455  if (l == 0)
     
    546547   and free all its storage.  */
    547548
    548 static void
    549 free_variable_name_and_value (const void *item)
    550 {
    551   struct variable *v = (struct variable *) item;
    552   free (v->name);
    553   free (v->value);
    554 }
    555 
    556 void
    557 pop_variable_scope (void)
    558 {
    559   struct variable_set_list *setlist = current_variable_set_list;
    560   struct variable_set *set = setlist->set;
    561 
    562   current_variable_set_list = setlist->next;
    563   free ((char *) setlist);
    564 
    565   hash_map (&set->table, free_variable_name_and_value);
    566   hash_free (&set->table, 1);
    567 
    568   free ((char *) set);
    569 }
    570 
    571549struct variable_set_list *
    572550create_new_variable_set (void)
     
    587565}
    588566
    589 /* Create a new variable set and push it on the current setlist.  */
     567static void
     568free_variable_name_and_value (const void *item)
     569{
     570  struct variable *v = (struct variable *) item;
     571  free (v->name);
     572  free (v->value);
     573}
     574
     575void
     576free_variable_set (struct variable_set_list *list)
     577{
     578  hash_map (&list->set->table, free_variable_name_and_value);
     579  hash_free (&list->set->table, 1);
     580  free ((char *) list->set);
     581  free ((char *) list);
     582}
     583
     584/* Create a new variable set and push it on the current setlist.
     585   If we're pushing a global scope (that is, the current scope is the global
     586   scope) then we need to "push" it the other way: file variable sets point
     587   directly to the global_setlist so we need to replace that with the new one.
     588 */
    590589
    591590struct variable_set_list *
    592591push_new_variable_scope (void)
    593592{
    594   return (current_variable_set_list = create_new_variable_set());
     593  current_variable_set_list = create_new_variable_set();
     594  if (current_variable_set_list->next == &global_setlist)
     595    {
     596      /* It was the global, so instead of new -> &global we want to replace
     597         &global with the new one and have &global -> new, with current still
     598         pointing to &global  */
     599      struct variable_set *set = current_variable_set_list->set;
     600      current_variable_set_list->set = global_setlist.set;
     601      global_setlist.set = set;
     602      current_variable_set_list->next = global_setlist.next;
     603      global_setlist.next = current_variable_set_list;
     604      current_variable_set_list = &global_setlist;
     605    }
     606  return (current_variable_set_list);
     607}
     608
     609void
     610pop_variable_scope (void)
     611{
     612  struct variable_set_list *setlist;
     613  struct variable_set *set;
     614
     615  /* Can't call this if there's no scope to pop!  */
     616  assert(current_variable_set_list->next != NULL);
     617
     618  if (current_variable_set_list != &global_setlist)
     619    {
     620      /* We're not pointing to the global setlist, so pop this one.  */
     621      setlist = current_variable_set_list;
     622      set = setlist->set;
     623      current_variable_set_list = setlist->next;
     624    }
     625  else
     626    {
     627      /* This set is the one in the global_setlist, but there is another global
     628         set beyond that.  We want to copy that set to global_setlist, then
     629         delete what used to be in global_setlist.  */
     630      setlist = global_setlist.next;
     631      set = global_setlist.set;
     632      global_setlist.set = setlist->set;
     633      global_setlist.next = setlist->next;
     634    }
     635
     636  /* Free the one we no longer need.  */
     637  free ((char *) setlist);
     638  hash_map (&set->table, free_variable_name_and_value);
     639  hash_free (&set->table, 1);
     640  free ((char *) set);
    595641}
    596642
     
    628674                          struct variable_set_list *setlist1)
    629675{
    630   register struct variable_set_list *list0 = *setlist0;
     676  struct variable_set_list *to = *setlist0;
    631677  struct variable_set_list *last0 = 0;
    632678
    633   while (setlist1 != 0 && list0 != 0)
    634     {
    635       struct variable_set_list *next = setlist1;
    636       setlist1 = setlist1->next;
    637 
    638       merge_variable_sets (list0->set, next->set);
    639 
    640       last0 = list0;
    641       list0 = list0->next;
    642     }
    643 
    644   if (setlist1 != 0)
     679  /* If there's nothing to merge, stop now.  */
     680  if (!setlist1)
     681    return;
     682
     683  /* This loop relies on the fact that all setlists terminate with the global
     684     setlist (before NULL).  If that's not true, arguably we SHOULD die.  */
     685  if (to)
     686    while (setlist1 != &global_setlist && to != &global_setlist)
     687      {
     688        struct variable_set_list *from = setlist1;
     689        setlist1 = setlist1->next;
     690
     691        merge_variable_sets (to->set, from->set);
     692
     693        last0 = to;
     694        to = to->next;
     695      }
     696
     697  if (setlist1 != &global_setlist)
    645698    {
    646699      if (last0 == 0)
     
    11271180#endif /* __MSDOS__ */
    11281181#ifdef WINDOWS32
    1129   if ((origin == o_file || origin == o_override) && streq (varname, "SHELL"))
     1182  if ((origin == o_file || origin == o_override || origin == o_command)
     1183      && streq (varname, "SHELL"))
    11301184    {
    11311185      extern char *default_shell;
  • vendor/gnumake/current/variable.h

    r280 r501  
    11/* Definitions for using variables in GNU Make.
    2 Copyright (C) 1988, 1989, 1990, 1991, 1992, 2002 Free Software Foundation, Inc.
     2Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
     31998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software
     4Foundation, Inc.
    35This file is part of GNU Make.
    46
    5 GNU Make is free software; you can redistribute it and/or modify
    6 it under the terms of the GNU General Public License as published by
    7 the Free Software Foundation; either version 2, or (at your option)
    8 any later version.
    9 
    10 GNU Make is distributed in the hope that it will be useful,
    11 but WITHOUT ANY WARRANTY; without even the implied warranty of
    12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    13 GNU General Public License for more details.
    14 
    15 You should have received a copy of the GNU General Public License
    16 along with GNU Make; see the file COPYING.  If not, write to
    17 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    18 Boston, MA 02111-1307, USA.  */
     7GNU Make is free software; you can redistribute it and/or modify it under the
     8terms of the GNU General Public License as published by the Free Software
     9Foundation; either version 2, or (at your option) any later version.
     10
     11GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     12WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     13A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     14
     15You should have received a copy of the GNU General Public License along with
     16GNU Make; see the file COPYING.  If not, write to the Free Software
     17Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
    1918
    2019#include "hash.h"
     
    138137/* variable.c */
    139138extern struct variable_set_list *create_new_variable_set PARAMS ((void));
     139extern void free_variable_set PARAMS ((struct variable_set_list *));
    140140extern struct variable_set_list *push_new_variable_scope PARAMS ((void));
    141141extern void pop_variable_scope PARAMS ((void));
  • vendor/gnumake/current/version.c

    r54 r501  
     1/* Record version and build host architecture for GNU make.
     2Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
     31998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software
     4Foundation, Inc.
     5This file is part of GNU Make.
     6
     7GNU Make is free software; you can redistribute it and/or modify it under the
     8terms of the GNU General Public License as published by the Free Software
     9Foundation; either version 2, or (at your option) any later version.
     10
     11GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     12WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     13A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     14
     15You should have received a copy of the GNU General Public License along with
     16GNU Make; see the file COPYING.  If not, write to the Free Software
     17Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
     18
    119/* We use <config.h> instead of "config.h" so that a compilation
    220   using -I. -I$srcdir will use ./config.h rather than $srcdir/config.h
  • vendor/gnumake/current/vmsdir.h

    r54 r501  
    1 /* dirent.h for vms */
     1/* dirent.h for vms
     2Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
     32006 Free Software Foundation, Inc.
     4This file is part of GNU Make.
     5
     6GNU Make is free software; you can redistribute it and/or modify it under the
     7terms of the GNU General Public License as published by the Free Software
     8Foundation; either version 2, or (at your option) any later version.
     9
     10GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     11WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     12A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     13
     14You should have received a copy of the GNU General Public License along with
     15GNU Make; see the file COPYING.  If not, write to the Free Software
     16Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
    217
    318#ifndef VMSDIR_H
  • vendor/gnumake/current/vmsfunctions.c

    r280 r501  
    1 /* vmsfunctions.c */
     1/* VMS functions
     2Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
     32006 Free Software Foundation, Inc.
     4This file is part of GNU Make.
     5
     6GNU Make is free software; you can redistribute it and/or modify it under the
     7terms of the GNU General Public License as published by the Free Software
     8Foundation; either version 2, or (at your option) any later version.
     9
     10GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     11WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     12A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     13
     14You should have received a copy of the GNU General Public License along with
     15GNU Make; see the file COPYING.  If not, write to the Free Software
     16Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
    217
    318#include "make.h"
     
    91106  strncpy (dentry->d_name, dnam->nam$l_name, dentry->d_namlen);
    92107  dentry->d_name[dentry->d_namlen] = '\0';
     108
     109#ifdef HAVE_CASE_INSENSITIVE_FS
    93110  uppercasify (dentry->d_name);
     111#endif
    94112
    95113  return (dentry);
  • vendor/gnumake/current/vmsify.c

    r54 r501  
    1 /*
    2   vmsify.c
    3 
    4   Module for vms <-> unix file name conversion
    5 
    6   Written by Klaus Kämpf ([email protected])
    7   of proGIS Software, Aachen, Germany
    8 
    9 */
     1/* vmsify.c -- Module for vms <-> unix file name conversion
     2Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
     32006 Free Software Foundation, Inc.
     4This file is part of GNU Make.
     5
     6GNU Make is free software; you can redistribute it and/or modify it under the
     7terms of the GNU General Public License as published by the Free Software
     8Foundation; either version 2, or (at your option) any later version.
     9
     10GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     11WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     12A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     13
     14You should have received a copy of the GNU General Public License along with
     15GNU Make; see the file COPYING.  If not, write to the Free Software
     16Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
     17
     18/* Written by Klaus Kämpf ([email protected])
     19   of proGIS Software, Aachen, Germany */
     20
    1021
    1122#include <stdio.h>
     
    8091      else
    8192        {
     93#ifdef HAVE_CASE_INSENSITIVE_FS
    8294          if (isupper ((unsigned char)**from))
    8395            **to = tolower ((unsigned char)**from);
    8496          else
     97#endif
    8598            **to = **from;
    8699        }
  • vendor/gnumake/current/vmsjobs.c

    r280 r501  
    1 
    2 
    3 
    41/* --------------- Moved here from job.c ---------------
    52   This file must be #included in job.c, as it accesses static functions.
    6 */
     3
     4Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
     52006 Free Software Foundation, Inc.
     6This file is part of GNU Make.
     7
     8GNU Make is free software; you can redistribute it and/or modify it under the
     9terms of the GNU General Public License as published by the Free Software
     10Foundation; either version 2, or (at your option) any later version.
     11
     12GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     13WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     14A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     15
     16You should have received a copy of the GNU General Public License along with
     17GNU Make; see the file COPYING.  If not, write to the Free Software
     18Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
     19
     20#include <string.h>
     21#include <descrip.h>
     22#include <clidef.h>
     23
     24extern char *vmsify PARAMS ((char *name, int type));
    725
    826static int vms_jobsefnmask = 0;
    927
    1028/* Wait for nchildren children to terminate */
    11 void
     29static void
    1230vmsWaitForChildren(int *status)
    1331{
     
    92110  return p;
    93111}
    94 
    95 #include <descrip.h>
    96 #include <clidef.h>
    97112
    98113/* This is called as an AST when a child process dies (it won't get
     
    198213
    199214/* local helpers to make ctrl+c and ctrl+y working, see below */
     215#include <iodef.h>
    200216#include <libclidef.h>
    201217#include <ssdef.h>
  • vendor/gnumake/current/vpath.c

    r153 r501  
    11/* Implementation of pattern-matching file search paths for GNU Make.
    2 Copyright (C) 1988,89,91,92,93,94,95,96,97 Free Software Foundation, Inc.
     2Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
     31998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software
     4Foundation, Inc.
    35This file is part of GNU Make.
    46
    5 GNU Make is free software; you can redistribute it and/or modify
    6 it under the terms of the GNU General Public License as published by
    7 the Free Software Foundation; either version 2, or (at your option)
    8 any later version.
    9 
    10 GNU Make is distributed in the hope that it will be useful,
    11 but WITHOUT ANY WARRANTY; without even the implied warranty of
    12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    13 GNU General Public License for more details.
    14 
    15 You should have received a copy of the GNU General Public License
    16 along with GNU Make; see the file COPYING.  If not, write to
    17 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    18 Boston, MA 02111-1307, USA.  */
     7GNU Make is free software; you can redistribute it and/or modify it under the
     8terms of the GNU General Public License as published by the Free Software
     9Foundation; either version 2, or (at your option) any later version.
     10
     11GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     12WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     13A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     14
     15You should have received a copy of the GNU General Public License along with
     16GNU Make; see the file COPYING.  If not, write to the Free Software
     17Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
    1918
    2019#include "make.h"
     
    471470         In December 1993 I loosened this restriction to allow a file
    472471         to be chosen if it is mentioned as a target in a makefile.  This
    473          seem logical.  */
     472         seem logical.
     473
     474         Special handling for -W / -o: make sure we preserve the special
     475         values here.  Actually this whole thing is a little bogus: I think
     476         we should ditch the name/hname thing and look into the renamed
     477         capability that already exists for files: that is, have a new struct
     478         file* entry for the VPATH-found file, and set the renamed field if
     479         we use it.
     480      */
    474481      {
    475482        struct file *f = lookup_file (name);
    476483        if (f != 0)
    477           exists = not_target || f->is_target;
     484          {
     485            exists = not_target || f->is_target;
     486            if (exists && mtime_ptr
     487                && (f->last_mtime == OLD_MTIME || f->last_mtime == NEW_MTIME))
     488              {
     489                *mtime_ptr = f->last_mtime;
     490                mtime_ptr = 0;
     491              }
     492          }
    478493      }
    479494
     
    522537                  continue;
    523538                }
     539
     540              /* Store the modtime into *MTIME_PTR for the caller.  */
     541              if (mtime_ptr != 0)
     542                {
     543                  *mtime_ptr = FILE_TIMESTAMP_STAT_MODTIME (name, st);
     544                  mtime_ptr = 0;
     545                }
    524546            }
    525547
     
    529551          *file = savestring (name, (n + 1 - name) + flen);
    530552
     553          /* If we get here and mtime_ptr hasn't been set, record
     554             UNKNOWN_MTIME to indicate this.  */
    531555          if (mtime_ptr != 0)
    532             /* Store the modtime into *MTIME_PTR for the caller.
    533                If we have had no need to stat the file here,
    534                we record UNKNOWN_MTIME to indicate this.  */
    535             *mtime_ptr = (exists_in_cache
    536                           ? FILE_TIMESTAMP_STAT_MODTIME (name, st)
    537                           : UNKNOWN_MTIME);
     556            *mtime_ptr = UNKNOWN_MTIME;
    538557
    539558          free (name);
  • vendor/gnumake/current/w32/Makefile.am

    r283 r501  
    11# Makefile.am to create libw32.a for mingw32 host.
     2# Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
     3# Free Software Foundation, Inc.
     4# This file is part of GNU Make.
     5#
     6# GNU Make is free software; you can redistribute it and/or modify it under the
     7# terms of the GNU General Public License as published by the Free Software
     8# Foundation; either version 2, or (at your option) any later version.
     9#
     10# GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     11# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     12# A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     13#
     14# You should have received a copy of the GNU General Public License along with
     15# GNU Make; see the file COPYING.  If not, write to the Free Software
     16# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
    217
    318noinst_LIBRARIES = libw32.a
  • vendor/gnumake/current/w32/compat/dirent.c

    r53 r501  
     1/* Directory entry code for Window platforms.
     2Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
     32006 Free Software Foundation, Inc.
     4This file is part of GNU Make.
     5
     6GNU Make is free software; you can redistribute it and/or modify it under the
     7terms of the GNU General Public License as published by the Free Software
     8Foundation; either version 2, or (at your option) any later version.
     9
     10GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     11WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     12A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     13
     14You should have received a copy of the GNU General Public License along with
     15GNU Make; see the file COPYING.  If not, write to the Free Software
     16Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
     17
     18
    119#include <sys/types.h>
    220#include <sys/stat.h>
     
    5876        /* other values defaulted */
    5977        pDir->dir_nNumFiles = 0;
    60         pDir->dir_hDirHandle = INVALID_HANDLE_VALUE;   
     78        pDir->dir_hDirHandle = INVALID_HANDLE_VALUE;
    6179        pDir->dir_ulCookie = __DIRENT_COOKIE;
    6280
  • vendor/gnumake/current/w32/include/dirent.h

    r53 r501  
    11/* Windows version of dirent.h
    2 Copyright (C) 1996, 1997, 2003 Free Software Foundation, Inc.
     2Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
     32006 Free Software Foundation, Inc.
    34This file is part of GNU Make.
    45
    5 GNU Make is free software; you can redistribute it and/or modify
    6 it under the terms of the GNU General Public License as published by
    7 the Free Software Foundation; either version 2, or (at your option)
    8 any later version.
     6GNU Make is free software; you can redistribute it and/or modify it under the
     7terms of the GNU General Public License as published by the Free Software
     8Foundation; either version 2, or (at your option) any later version.
    99
    10 GNU Make is distributed in the hope that it will be useful,
    11 but WITHOUT ANY WARRANTY; without even the implied warranty of
    12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    13 GNU General Public License for more details.
     10GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     11WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     12A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
    1413
    15 You should have received a copy of the GNU General Public License
    16 along with GNU Make; see the file COPYING.  If not, write to
    17 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
    18 MA 02111-1307, USA.  */
     14You should have received a copy of the GNU General Public License along with
     15GNU Make; see the file COPYING.  If not, write to the Free Software
     16Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
    1917
    2018#ifndef _DIRENT_H
  • vendor/gnumake/current/w32/include/pathstuff.h

    r53 r501  
     1/* Definitions for Windows path manipulation.
     2Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
     32006 Free Software Foundation, Inc.
     4This file is part of GNU Make.
     5
     6GNU Make is free software; you can redistribute it and/or modify it under the
     7terms of the GNU General Public License as published by the Free Software
     8Foundation; either version 2, or (at your option) any later version.
     9
     10GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     11WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     12A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     13
     14You should have received a copy of the GNU General Public License along with
     15GNU Make; see the file COPYING.  If not, write to the Free Software
     16Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
     17
    118#ifndef _PATHSTUFF_H
    219#define _PATHSTUFF_H
  • vendor/gnumake/current/w32/include/sub_proc.h

    r284 r501  
     1/* Definitions for Windows process invocation.
     2Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
     32006 Free Software Foundation, Inc.
     4This file is part of GNU Make.
     5
     6GNU Make is free software; you can redistribute it and/or modify it under the
     7terms of the GNU General Public License as published by the Free Software
     8Foundation; either version 2, or (at your option) any later version.
     9
     10GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     11WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     12A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     13
     14You should have received a copy of the GNU General Public License along with
     15GNU Make; see the file COPYING.  If not, write to the Free Software
     16Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
     17
    118#ifndef SUB_PROC_H
    219#define SUB_PROC_H
     
    522 * Component Name:
    623 *
    7  * $Date: 2005/02/10 00:10:58 $
     24 * $Date: 2006/02/11 22:16:05 $
    825 *
    9  * $Source: /cvsroot/make/make/w32/include/sub_proc.h,v $
     26 * $Source: /sources/make/make/w32/include/sub_proc.h,v $
    1027 *
    11  * $Revision: 1.5 $
     28 * $Id: sub_proc.h,v 1.8 2006/02/11 22:16:05 psmith Exp $
    1229 */
    13 
    14 /* $Id: sub_proc.h,v 1.5 2005/02/10 00:10:58 psmith Exp $ */
    1530
    1631#define EXTERN_DECL(entry, args) extern entry args
     
    3045EXTERN_DECL(HANDLE process_easy, (char** argv, char** env));
    3146EXTERN_DECL(BOOL process_kill, (HANDLE proc, int signal));
     47EXTERN_DECL(int process_used_slots, (VOID_DECL));
    3248
    3349/* support routines */
  • vendor/gnumake/current/w32/include/w32err.h

    r53 r501  
     1/* Definitions for Windows error handling.
     2Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
     32006 Free Software Foundation, Inc.
     4This file is part of GNU Make.
     5
     6GNU Make is free software; you can redistribute it and/or modify it under the
     7terms of the GNU General Public License as published by the Free Software
     8Foundation; either version 2, or (at your option) any later version.
     9
     10GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     11WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     12A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     13
     14You should have received a copy of the GNU General Public License along with
     15GNU Make; see the file COPYING.  If not, write to the Free Software
     16Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
     17
    118#ifndef _W32ERR_H_
    219#define _W32ERR_H_
  • vendor/gnumake/current/w32/pathstuff.c

    r53 r501  
     1/* Path conversion for Windows pathnames.
     2Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
     32006 Free Software Foundation, Inc.
     4This file is part of GNU Make.
     5
     6GNU Make is free software; you can redistribute it and/or modify it under the
     7terms of the GNU General Public License as published by the Free Software
     8Foundation; either version 2, or (at your option) any later version.
     9
     10GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     11WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     12A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     13
     14You should have received a copy of the GNU General Public License along with
     15GNU Make; see the file COPYING.  If not, write to the Free Software
     16Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
     17
    118#include <string.h>
    219#include <stdlib.h>
     
    87104getcwd_fs(char* buf, int len)
    88105{
    89         char *p;
    90 
    91         if (p = getcwd(buf, len)) {
     106        char *p = getcwd(buf, len);
     107
     108        if (p) {
    92109                char *q = w32ify(buf, 0);
    93110                strncpy(buf, q, len);
  • vendor/gnumake/current/w32/subproc/NMakefile

    r284 r501  
    22# `build.bat' instead.
    33#
    4 # Copyright (C) 1988,89,91,92,93,94,95,96,97 Free Software Foundation, Inc
     4# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
     5# 2006 Free Software Foundation, Inc.
    56# This file is part of GNU Make.
    67#
    7 # GNU Make is free software; you can redistribute it and/or modify
    8 # it under the terms of the GNU General Public License as published by
    9 # the Free Software Foundation; either version 2, or (at your option)
    10 # any later version.
     8# GNU Make is free software; you can redistribute it and/or modify it under the
     9# terms of the GNU General Public License as published by the Free Software
     10# Foundation; either version 2, or (at your option) any later version.
    1111#
    12 # GNU Make is distributed in the hope that it will be useful,
    13 # but WITHOUT ANY WARRANTY; without even the implied warranty of
    14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    15 # GNU General Public License for more details.
     12# GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     13# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     14# A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
    1615#
    17 # You should have received a copy of the GNU General Public License
    18 # along with GNU Make; see the file COPYING.  If not, write to
    19 # the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
     16# You should have received a copy of the GNU General Public License along with
     17# GNU Make; see the file COPYING.  If not, write to the Free Software
     18# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
    2019
    2120#
     
    2928MAKEFILE=NMakefile
    3029
    31 CFLAGS_any = /nologo /MT /W3 /GX /Z7 /YX /D WIN32 /D WINDOWS32 /D _WINDOWS  -I. -I../include -I../../
     30CFLAGS_any = /nologo /MT /W4 /GX /Z7 /YX /D WIN32 /D WINDOWS32 /D _WINDOWS  -I. -I../include -I../../
    3231CFLAGS_debug = $(CFLAGS_any) /Od /D _DEBUG /FR.\WinDebug\ /Fp.\WinDebug\subproc.pch /Fo.\WinDebug/
    3332CFLAGS_release = $(CFLAGS_any) /O2 /FR.\WinRel\ /Fp.\WinRel\subproc.pch /Fo.\WinRel/
  • vendor/gnumake/current/w32/subproc/build.bat

    r53 r501  
     1@if "%1" == "gcc" GoTo GCCBuild
    12if not exist .\WinDebug\nul mkdir .\WinDebug
    2 cl.exe /nologo /MT /W3 /GX /Z7 /YX /Od /I .. /I . /I ../include /D WIN32 /D WINDOWS32 /D _DEBUG /D _WINDOWS /FR.\WinDebug/ /Fp.\WinDebug/subproc.pch /Fo.\WinDebug/ /c misc.c
    3 cl.exe /nologo /MT /W3 /GX /Z7 /YX /Od /I .. /I . /I ../include /I ../.. /D WIN32 /D WINDOWS32 /D _DEBUG /D _WINDOWS /FR.\WinDebug/ /Fp.\WinDebug/subproc.pch /Fo.\WinDebug/ /c sub_proc.c
    4 cl.exe /nologo /MT /W3 /GX /Z7 /YX /Od /I .. /I . /I ../include /D WIN32 /D WINDOWS32 /D _DEBUG /D _WINDOWS /FR.\WinDebug/ /Fp.\WinDebug/subproc.pch /Fo.\WinDebug/ /c w32err.c
     3cl.exe /nologo /MT /W4 /GX /Z7 /YX /Od /I .. /I . /I ../include /D WIN32 /D WINDOWS32 /D _DEBUG /D _WINDOWS /FR.\WinDebug/ /Fp.\WinDebug/subproc.pch /Fo.\WinDebug/ /c misc.c
     4cl.exe /nologo /MT /W4 /GX /Z7 /YX /Od /I .. /I . /I ../include /I ../.. /D WIN32 /D WINDOWS32 /D _DEBUG /D _WINDOWS /FR.\WinDebug/ /Fp.\WinDebug/subproc.pch /Fo.\WinDebug/ /c sub_proc.c
     5cl.exe /nologo /MT /W4 /GX /Z7 /YX /Od /I .. /I . /I ../include /D WIN32 /D WINDOWS32 /D _DEBUG /D _WINDOWS /FR.\WinDebug/ /Fp.\WinDebug/subproc.pch /Fo.\WinDebug/ /c w32err.c
    56lib.exe /NOLOGO /OUT:.\WinDebug\subproc.lib  .\WinDebug/misc.obj  .\WinDebug/sub_proc.obj  .\WinDebug/w32err.obj
    67if not exist .\WinRel\nul mkdir .\WinRel
    7 cl.exe /nologo /MT /W3 /GX /YX /O2 /I ../include /D WIN32 /D WINDOWS32 /D NDEBUG /D _WINDOWS /FR.\WinRel/ /Fp.\WinRel/subproc.pch /Fo.\WinRel/ /c misc.c
    8 cl.exe /nologo /MT /W3 /GX /YX /O2 /I ../include /I ../.. /D WIN32 /D WINDOWS32 /D NDEBUG /D _WINDOWS /FR.\WinRel/ /Fp.\WinRel/subproc.pch /Fo.\WinRel/ /c sub_proc.c
    9 cl.exe /nologo /MT /W3 /GX /YX /O2 /I ../include /D WIN32 /D WINDOWS32 /D NDEBUG /D _WINDOWS /FR.\WinRel/ /Fp.\WinRel/subproc.pch /Fo.\WinRel/ /c w32err.c
     8cl.exe /nologo /MT /W4 /GX /YX /O2 /I ../include /D WIN32 /D WINDOWS32 /D NDEBUG /D _WINDOWS /FR.\WinRel/ /Fp.\WinRel/subproc.pch /Fo.\WinRel/ /c misc.c
     9cl.exe /nologo /MT /W4 /GX /YX /O2 /I ../include /I ../.. /D WIN32 /D WINDOWS32 /D NDEBUG /D _WINDOWS /FR.\WinRel/ /Fp.\WinRel/subproc.pch /Fo.\WinRel/ /c sub_proc.c
     10cl.exe /nologo /MT /W4 /GX /YX /O2 /I ../include /D WIN32 /D WINDOWS32 /D NDEBUG /D _WINDOWS /FR.\WinRel/ /Fp.\WinRel/subproc.pch /Fo.\WinRel/ /c w32err.c
    1011lib.exe /NOLOGO /OUT:.\WinRel\subproc.lib  .\WinRel/misc.obj  .\WinRel/sub_proc.obj  .\WinRel/w32err.obj
     12GoTo BuildEnd
     13:GCCBuild
     14gcc -mthreads -Wall -gstabs+ -ggdb3 -O2 -I.. -I. -I../include -I../.. -DWINDOWS32 -c misc.c -o ../../w32_misc.o
     15gcc -mthreads -Wall -gstabs+ -ggdb3 -O2 -I.. -I. -I../include -I../.. -DWINDOWS32 -c sub_proc.c -o ../../sub_proc.o
     16gcc -mthreads -Wall -gstabs+ -ggdb3 -O2 -I.. -I. -I../include -I../.. -DWINDOWS32 -c w32err.c -o ../../w32err.o
     17:BuildEnd
     18
     19@echo off
     20rem Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
     21rem 2005, 2006 Free Software Foundation, Inc.
     22rem This file is part of GNU Make.
     23
     24rem GNU Make is free software; you can redistribute it and/or modify it under the
     25rem terms of the GNU General Public License as published by the Free Software
     26rem Foundation; either version 2, or (at your option) any later version.
     27
     28rem GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     29rem WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     30rem A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     31
     32rem You should have received a copy of the GNU General Public License along with
     33rem GNU Make; see the file COPYING.  If not, write to the Free Software
     34rem Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  • vendor/gnumake/current/w32/subproc/misc.c

    r53 r501  
     1/* Process handling for Windows
     2Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
     32006 Free Software Foundation, Inc.
     4This file is part of GNU Make.
     5
     6GNU Make is free software; you can redistribute it and/or modify it under the
     7terms of the GNU General Public License as published by the Free Software
     8Foundation; either version 2, or (at your option) any later version.
     9
     10GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     11WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     12A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     13
     14You should have received a copy of the GNU General Public License along with
     15GNU Make; see the file COPYING.  If not, write to the Free Software
     16Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
     17
    118#include <stddef.h>
    219#include <stdlib.h>
     
    2037}
    2138bool_t
    22 arr2envblk(char **arr, char **envblk_out) 
     39arr2envblk(char **arr, char **envblk_out)
    2340{
    2441        char **tmp;
  • vendor/gnumake/current/w32/subproc/proc.h

    r53 r501  
     1/* Definitions for Windows
     2Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
     32006 Free Software Foundation, Inc.
     4This file is part of GNU Make.
     5
     6GNU Make is free software; you can redistribute it and/or modify it under the
     7terms of the GNU General Public License as published by the Free Software
     8Foundation; either version 2, or (at your option) any later version.
     9
     10GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     11WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     12A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     13
     14You should have received a copy of the GNU General Public License along with
     15GNU Make; see the file COPYING.  If not, write to the Free Software
     16Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
     17
    118#ifndef  _PROC_H
    219#define _PROC_H
  • vendor/gnumake/current/w32/subproc/sub_proc.c

    r284 r501  
     1/* Process handling for Windows.
     2Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
     32006 Free Software Foundation, Inc.
     4This file is part of GNU Make.
     5
     6GNU Make is free software; you can redistribute it and/or modify it under the
     7terms of the GNU General Public License as published by the Free Software
     8Foundation; either version 2, or (at your option) any later version.
     9
     10GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     11WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     12A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     13
     14You should have received a copy of the GNU General Public License along with
     15GNU Make; see the file COPYING.  If not, write to the Free Software
     16Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
     17
    118#include <stdlib.h>
    219#include <stdio.h>
    320#include <process.h>  /* for msvc _beginthreadex, _endthreadex */
     21#include <signal.h>
    422#include <windows.h>
    523
     
    3149
    3250/* keep track of children so we can implement a waitpid-like routine */
    33 static sub_process *proc_array[256];
     51static sub_process *proc_array[MAXIMUM_WAIT_OBJECTS];
    3452static int proc_index = 0;
    3553static int fake_exits_pending = 0;
     
    6684process_wait_for_any_private(void)
    6785{
    68         HANDLE handles[256];
     86        HANDLE handles[MAXIMUM_WAIT_OBJECTS];
    6987        DWORD retval, which;
    7088        int i;
     
    120138process_register(HANDLE proc)
    121139{
    122         proc_array[proc_index++] = (sub_process *) proc;
     140        if (proc_index < MAXIMUM_WAIT_OBJECTS)
     141                proc_array[proc_index++] = (sub_process *) proc;
     142}
     143
     144/*
     145 * Return the number of processes that we are still waiting for.
     146 */
     147int
     148process_used_slots(void)
     149{
     150        return proc_index;
    123151}
    124152
     
    163191
    164192long
    165 process_errno(HANDLE proc)
    166 {
    167         return (((sub_process *)proc)->lerrno);
     193process_signal(HANDLE proc)
     194{
     195        if (proc == INVALID_HANDLE_VALUE) return 0;
     196        return (((sub_process *)proc)->signal);
    168197}
    169198
    170199long
    171 process_signal(HANDLE proc)
    172 {
    173         return (((sub_process *)proc)->signal);
    174 }
    175 
    176         long
    177200process_last_err(HANDLE proc)
    178201{
     202        if (proc == INVALID_HANDLE_VALUE) return ERROR_INVALID_HANDLE;
    179203        return (((sub_process *)proc)->last_err);
    180204}
    181205
    182         long
     206long
    183207process_exit_code(HANDLE proc)
    184208{
     209        if (proc == INVALID_HANDLE_VALUE) return EXIT_FAILURE;
    185210        return (((sub_process *)proc)->exit_code);
    186211}
    187212
    188         char *
     213/*
     2142006-02:
     215All the following functions are currently unused.
     216All of them would crash gmake if called with argument INVALID_HANDLE_VALUE.
     217Hence whoever wants to use one of this functions must invent and implement
     218a reasonable error handling for this function.
     219
     220char *
    189221process_outbuf(HANDLE proc)
    190222{
     
    192224}
    193225
    194         char *
     226char *
    195227process_errbuf(HANDLE proc)
    196228{
     
    198230}
    199231
    200         int
     232int
    201233process_outcnt(HANDLE proc)
    202234{
     
    204236}
    205237
    206         int
     238int
    207239process_errcnt(HANDLE proc)
    208240{
     
    210242}
    211243
    212         void
     244void
    213245process_pipes(HANDLE proc, int pipes[3])
    214246{
     
    218250        return;
    219251}
    220 
     252*/
    221253
    222254        HANDLE
     
    369401 * Description:   Create the child process to be helped
    370402 *
    371  * Returns:
     403 * Returns: success <=> 0
    372404 *
    373405 * Notes/Dependencies:
     
    523555                        pproc->last_err = GetLastError();
    524556                        pproc->lerrno = E_FORK;
    525                         fprintf(stderr, "process_begin: CreateProcess(%s, %s, ...) failed.\n", exec_path, command_line);
     557                        fprintf(stderr, "process_begin: CreateProcess(%s, %s, ...) failed.\n",
     558                                exec_path ? exec_path : "NULL", command_line);
    526559                        if (envblk) free(envblk);
    527560                        free( command_line );
     
    535568
    536569        /* Close the halves of the pipes we don't need */
    537         if (pproc->sv_stdin) {
    538                 CloseHandle((HANDLE)pproc->sv_stdin[1]);
    539                 (HANDLE)pproc->sv_stdin[1] = 0;
    540         }
    541         if (pproc->sv_stdout) {
    542                 CloseHandle((HANDLE)pproc->sv_stdout[1]);
    543                 (HANDLE)pproc->sv_stdout[1] = 0;
    544         }
    545         if (pproc->sv_stderr) {
    546                 CloseHandle((HANDLE)pproc->sv_stderr[1]);
    547                 (HANDLE)pproc->sv_stderr[1] = 0;
    548         }
     570        CloseHandle((HANDLE)pproc->sv_stdin[1]);
     571        CloseHandle((HANDLE)pproc->sv_stdout[1]);
     572        CloseHandle((HANDLE)pproc->sv_stderr[1]);
     573        pproc->sv_stdin[1] = 0;
     574        pproc->sv_stdout[1] = 0;
     575        pproc->sv_stderr[1] = 0;
    549576
    550577        free( command_line );
     
    658685        bool_t stdin_eof = FALSE, stdout_eof = FALSE, stderr_eof = FALSE;
    659686        HANDLE childhand = (HANDLE) pproc->pid;
    660         HANDLE tStdin, tStdout, tStderr;
    661         DWORD dwStdin, dwStdout, dwStderr;
     687        HANDLE tStdin = NULL, tStdout = NULL, tStderr = NULL;
     688        unsigned int dwStdin, dwStdout, dwStderr;
    662689        HANDLE wait_list[4];
    663690        DWORD wait_count;
     
    675702                stdin_eof = TRUE;
    676703                CloseHandle((HANDLE)pproc->sv_stdin[0]);
    677                 (HANDLE)pproc->sv_stdin[0] = 0;
     704                pproc->sv_stdin[0] = 0;
    678705        } else {
    679706                tStdin = (HANDLE) _beginthreadex( 0, 1024,
    680                         (unsigned (__stdcall *) (void *))proc_stdin_thread, pproc, 0,
    681                         (unsigned int *) &dwStdin);
     707                        (unsigned (__stdcall *) (void *))proc_stdin_thread,
     708                                                  pproc, 0, &dwStdin);
    682709                if (tStdin == 0) {
    683710                        pproc->last_err = GetLastError();
     
    692719        tStdout = (HANDLE) _beginthreadex( 0, 1024,
    693720                (unsigned (__stdcall *) (void *))proc_stdout_thread, pproc, 0,
    694                 (unsigned int *) &dwStdout);
     721                &dwStdout);
    695722        tStderr = (HANDLE) _beginthreadex( 0, 1024,
    696723                (unsigned (__stdcall *) (void *))proc_stderr_thread, pproc, 0,
    697                 (unsigned int *) &dwStderr);
     724                &dwStderr);
    698725
    699726        if (tStdout == 0 || tStderr == 0) {
     
    740767                if (ready_hand == tStdin) {
    741768                        CloseHandle((HANDLE)pproc->sv_stdin[0]);
    742                         (HANDLE)pproc->sv_stdin[0] = 0;
     769                        pproc->sv_stdin[0] = 0;
    743770                        CloseHandle(tStdin);
    744771                        tStdin = 0;
     
    748775
    749776                        CloseHandle((HANDLE)pproc->sv_stdout[0]);
    750                         (HANDLE)pproc->sv_stdout[0] = 0;
     777                        pproc->sv_stdout[0] = 0;
    751778                        CloseHandle(tStdout);
    752779                        tStdout = 0;
     
    756783
    757784                        CloseHandle((HANDLE)pproc->sv_stderr[0]);
    758                         (HANDLE)pproc->sv_stderr[0] = 0;
     785                        pproc->sv_stderr[0] = 0;
    759786                        CloseHandle(tStderr);
    760787                        tStderr = 0;
     
    763790                } else if (ready_hand == childhand) {
    764791
    765                         GetExitCodeResult = GetExitCodeProcess(childhand, (DWORD*)&pproc->exit_code);
     792                        DWORD ierr;
     793                        GetExitCodeResult = GetExitCodeProcess(childhand, &ierr);
     794                        if (ierr == CONTROL_C_EXIT) {
     795                                pproc->signal = SIGINT;
     796                        } else {
     797                                pproc->exit_code = ierr;
     798                        }
    766799                        if (GetExitCodeResult == FALSE) {
    767800                                pproc->last_err = GetLastError();
     
    812845        DWORD wait_return;
    813846        BOOL GetExitCodeResult;
     847        DWORD ierr;
    814848
    815849        if (proc == NULL)
     
    855889        }
    856890
    857         GetExitCodeResult = GetExitCodeProcess(childhand, (DWORD*)&pproc->exit_code);
     891        GetExitCodeResult = GetExitCodeProcess(childhand, &ierr);
     892        if (ierr == CONTROL_C_EXIT) {
     893                pproc->signal = SIGINT;
     894        } else {
     895                pproc->exit_code = ierr;
     896        }
    858897        if (GetExitCodeResult == FALSE) {
    859898                pproc->last_err = GetLastError();
     
    11561195  HANDLE hProcess;
    11571196
     1197  if (proc_index >= MAXIMUM_WAIT_OBJECTS) {
     1198        DB (DB_JOBS, ("process_easy: All process slots used up\n"));
     1199        return INVALID_HANDLE_VALUE;
     1200  }
    11581201  if (DuplicateHandle(GetCurrentProcess(),
    11591202                      GetStdHandle(STD_INPUT_HANDLE),
     
    11641207                      DUPLICATE_SAME_ACCESS) == FALSE) {
    11651208    fprintf(stderr,
    1166             "process_easy: DuplicateHandle(In) failed (e=%d)\n",
     1209            "process_easy: DuplicateHandle(In) failed (e=%ld)\n",
    11671210            GetLastError());
    11681211    return INVALID_HANDLE_VALUE;
     
    11761219                      DUPLICATE_SAME_ACCESS) == FALSE) {
    11771220    fprintf(stderr,
    1178            "process_easy: DuplicateHandle(Out) failed (e=%d)\n",
     1221           "process_easy: DuplicateHandle(Out) failed (e=%ld)\n",
    11791222           GetLastError());
    11801223    return INVALID_HANDLE_VALUE;
     
    11881231                      DUPLICATE_SAME_ACCESS) == FALSE) {
    11891232    fprintf(stderr,
    1190             "process_easy: DuplicateHandle(Err) failed (e=%d)\n",
     1233            "process_easy: DuplicateHandle(Err) failed (e=%ld)\n",
    11911234            GetLastError());
    11921235    return INVALID_HANDLE_VALUE;
  • vendor/gnumake/current/w32/subproc/w32err.c

    r284 r501  
     1/* Error handling for Windows
     2Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
     32006 Free Software Foundation, Inc.
     4This file is part of GNU Make.
     5
     6GNU Make is free software; you can redistribute it and/or modify it under the
     7terms of the GNU General Public License as published by the Free Software
     8Foundation; either version 2, or (at your option) any later version.
     9
     10GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     11WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     12A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     13
     14You should have received a copy of the GNU General Public License along with
     15GNU Make; see the file COPYING.  If not, write to the Free Software
     16Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
     17
    118#include <windows.h>
    219#include "w32err.h"
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette