ident.c 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. char *xxxvers = "\n@(#) MAKE. VERSION 2.78 22 MAY 1986\n" ;
  2. static char *sccsid = "@(#)ident.c 8th Edition (Bell Labs) 85/10/28";
  3. /*
  4. 2.1 4/24/76 Base version
  5. 2.2 4/26/76 Error found by SRB in overriding pattern rules;
  6. corrected gram.y
  7. 2.3 4/27/76 Further correction for overriding pattern rules;
  8. corrected doname.c
  9. 2.4 Removed .CLEAR name, added .IGNORE.
  10. A .SUFFIXES rule without dependents clears the list
  11. 2.5 Stripped output
  12. 2.6 Changed doshell to accomodate new shell.
  13. 2.7 Following SRB's sugestion, added ${...} as
  14. alternate macro name
  15. 2.8 Defined macros AS and DTGEN in files.c.
  16. 2.9 Put in a fix to prevent removal of files
  17. upon interrupt in a :: rule.
  18. 2.10 Fixed bugs involving messages for ::
  19. and closing standard input
  20. 2.11 Changed time test from <= to <
  21. (equal times are considered in sync)
  22. 2.12 Installed -t flag (touch and update time of
  23. files rather than issue commands)
  24. Fixed bug in dosys
  25. 2.13 Fixed lex.c to allow sharps (#) in commands
  26. 2.14 Added .DEFAULT rule
  27. 2.15 Changed to <lS> I/O System (stdio.h)
  28. 2.16 Removed references to double floats and macro HAVELONGS;
  29. committed to use of long ints for times.
  30. 2.17 Corrected metacharacter list in dosys.c.
  31. 2.18 Miscellaneous fixes
  32. 2.19 Updated files.c to use include file stat.h
  33. 2.20 Added -q flag for Mike Lesk
  34. 2.21 Added AWK rules and .w suffix to files.c
  35. 2.22 Added colon to the list of metacharacters
  36. 2.23 Macro substitutions on dependency lines.
  37. Redid argument and macro setting.
  38. Close files before exec'ing.
  39. Print > at beginning of command lines.
  40. No printing of commands beginnng with @.
  41. 2.24 Parametrized propt sequence in doname.c (4/1/77)
  42. 2.25 Added $? facility
  43. 2.26 Fixed bug in macro expansion
  44. 2.27 Repaired interrupt handling
  45. 2.28 Repaired bug in -n
  46. 2.29 Repaired bug in file closing and $? string creation
  47. 2.30 Repaired bug in grammar about command lines
  48. 2.31 Added -k flag, modified doname.c and defs
  49. 2.32 Made "keepgoing" the default, added -S flag,
  50. changed handling of funny characters internally
  51. 2.3 Small fixups to interrupt and quit handling.
  52. Changed default back to -k.
  53. 2.34 Added .PRECIOUS rule for interrupts
  54. 2.35 Added references to include files (due to TLL)
  55. 2.36 Fixed bug in lex.c so = permitted in rules on :; line
  56. 2.37 Miscellaneous code cleanups
  57. 2.38 Sleep one second after each touch in -t mode
  58. 2.39 Extended string[] declaration in doname.c
  59. 2.40 Permit recursive macro references
  60. 2.41 Separated YYLMAX into INMAX and OUTMAX macros, specifying longest
  61. input and output lines respectively.
  62. 2.42 Fixed bug involving :: lines without dependents
  63. 2.43 Main name is first name that contains a slash or doesn't
  64. begin with a dot
  65. 2.44 Fixed bug involving $$ on command line
  66. 2.45 Changed files.c to put .f before .e, .r and to use f77 instead of fc.
  67. 2.46 Changed dosys.c to eliminate copying and to call execvp.
  68. 2.47 Changed files.c to add ".out" suffix and rules.
  69. 2.48 Changed misc.c to permit tabs preceding = in macro definition
  70. 2.49 Added reference to <ctyp.h>. Removed -lS references from files.c
  71. 2.50 General cleanup to reduce lint messages. (changes in declarations
  72. and in uses of variables)
  73. 2.51 Further cleanup making use of new Yacc features.
  74. 2.52
  75. 2.53 Changed handling of "touch"
  76. 2.54 Fixed bug involving comments in lexical analyzer.
  77. 2.55 Ignore commands that begin with a # are comments.
  78. 2.56 Added = to list of META characters (to permit shell commands)
  79. 2.57 Changed lookarch and getobj to fix bugs.
  80. 2.58 Fixed interrupt handling.
  81. 2.59 Changed references to sprintf to accomodate new function definition
  82. Also fixed extern declarations.
  83. 2.60 Limited the number of open directories.
  84. 2.61 Added code to handle archives with ascii headers.
  85. 2.62 Joe Condon Fixes to archive formats
  86. 2.63 Pattern Matching (%) stuff.
  87. 2.64 Reinstalled $(TGS) as $^ from other version
  88. 2.65 Installed dynamic macros ( := commands).
  89. 2.66 Sped up pattern matching code
  90. 2.67 Changed pattern matching code to permit multiple dependents
  91. 2.68 Added + (do it despite -n) prefix to command lines.
  92. Fixed bug involving metacharacter expansions on dependency lines.
  93. 2.69 Added & to dependency lines and new background process spawning
  94. 2.70 Added Bradford's macros: $/, $@, *D, *F, <D, <F, @D, @F.
  95. 2.71 Added include stack to input.
  96. Added check for sccs makefiles: s.[Mm]akefile
  97. 2.72 Load environment into macro tables. Added Bradford's -e flag.
  98. 2.73 Pass changed environment macros out to commands.
  99. 2.74 Fixed limit on args in dosys.c.
  100. Non-existent archives now treated as other non-existent files.
  101. 2.75 Fixed bug in rehash.
  102. 2.76 Fixed bug when pattern searching in non-existent directory
  103. Fixed infinite loop when awaiting failed process
  104. Now wait till all subjobs finish before returning
  105. make, unless a subjob fails
  106. 2.77 Added -z option that always forces shell invocation
  107. rather than direct fork-exec
  108. 2.78 Check for error (-1) returned from fork
  109. */