home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / misc / volume20 / dmake / patch02h < prev    next >
Text File  |  1991-06-29  |  39KB  |  1,055 lines

  1. Newsgroups: comp.sources.misc
  2. From: Dennis Vadura <dvadura@watdragon.waterloo.edu>
  3. Subject:  v20i083:  dmake - dmake version 3.7, Patch02h/12
  4. Message-ID: <1991Jun29.222708.4486@sparky.IMD.Sterling.COM>
  5. X-Md4-Signature: 0a035495cfbe1416725534e62ee85b12
  6. Date: Sat, 29 Jun 1991 22:27:08 GMT
  7. Approved: kent@sparky.imd.sterling.com
  8.  
  9. Submitted-by: Dennis Vadura <dvadura@watdragon.waterloo.edu>
  10. Posting-number: Volume 20, Issue 83
  11. Archive-name: dmake/patch02h
  12. Patch-To: dmake: Volume 19, Issue 22-58
  13.  
  14. #!/bin/sh
  15. # this is dp2.07 (part 7 of a multipart archive)
  16. # do not concatenate these parts, unpack them in order with /bin/sh
  17. # file dm37p2 continued
  18. #
  19. if test ! -r _shar_seq_.tmp; then
  20.     echo 'Please unpack part 1 first!'
  21.     exit 1
  22. fi
  23. (read Scheck
  24.  if test "$Scheck" != 7; then
  25.     echo Please unpack part "$Scheck" next!
  26.     exit 1
  27.  else
  28.     exit 0
  29.  fi
  30. ) < _shar_seq_.tmp || exit 1
  31. if test ! -f _shar_wnt_.tmp; then
  32.     echo 'x - still skipping dm37p2'
  33. else
  34. echo 'x - continuing file dm37p2'
  35. sed 's/^X//' << 'SHAR_EOF' >> 'dm37p2' &&
  36. Xin the command line).  It then sets the macro CMNDARGS to be the remainder
  37. Xof the line.
  38. X.B dmake
  39. Xthen expands the macro COMMAND which by default is set to
  40. X.RS
  41. X.sp
  42. XCOMMAND = $(CMNDNAME) $(CMNDARGS)
  43. X.sp
  44. X.RE
  45. XThe result of this final expansion is the command that will be executed.
  46. XThe reason for this expansion is to allow for a different interface to
  47. Xthe argument passing facilities (esp. under DOS) than that provided by
  48. X.B dmake\fR.\fP
  49. XYou can for example define COMMAND to be
  50. X.RS
  51. X.sp
  52. XCOMMAND = $(CMNDNAME) @$(mktmp $(CMNDARGS))
  53. X.sp
  54. X.RE
  55. Xwhich dumps the arguments into a temporary file and runs the command
  56. X.RS
  57. X.sp
  58. X$(CMNDNAME) @/tmp/ASAD23043
  59. X.sp
  60. X.RE
  61. Xwhich has a much shorter argument list.  It is now up to the command to
  62. Xuse the supplied argument as the source for all other arguments.
  63. XAs an optimization, if COMMAND is not defined
  64. X.B dmake
  65. Xdoes not perform the above expansion.  On systems, such as UNIX, that
  66. Xhandle long command lines this provides a slight saving in processing the
  67. Xmakefiles.
  68. X.SH "MAKING LIBRARIES"
  69. XLibraries are easy to maintain using \fBdmake\fP.  A library is a file
  70. Xcontaining a collection of object files.
  71. XThus to make a library you simply specify it as a target with the .LIBRARY
  72. Xattribute set and specify its list of prerequisites.  The prerequisites should
  73. Xbe the object members that are to go into the library.  When
  74. X.B dmake
  75. Xmakes the library target it uses the .LIBRARY attribute to pass to the
  76. Xprerequisites the .LIBMEMBER attribute and the name of the library.  This
  77. Xenables the file binding mechanism to look for the member in the library if an
  78. Xappropriate object file cannot be found. A small example best illustrates
  79. Xthis.
  80. X.RS
  81. X.nf
  82. X.sp
  83. Xmylib.a .LIBRARY : mem1.o mem2.o mem3.o
  84. X\trules for making library...
  85. X\t# remember to remove .o's when lib is made
  86. X.sp
  87. X# equivalent to:  '%.o : %.c ; ...'
  88. X\&.c.o :; rules for making .o from .c say
  89. X.sp
  90. X.fi
  91. X.RE
  92. X.B dmake
  93. Xwill use the .c.o rule for making the library members if appropriate .c files
  94. Xcan be found using the search rules.  NOTE:  this is not specific in any way
  95. Xto C programs, they are simply used as an example.
  96. X.PP
  97. X.B dmake
  98. Xtries to handle the old library construct format in a sensible way.
  99. XThe construct 
  100. X.I lib(member.o)
  101. Xis separated and the \fIlib\fP portion is declared
  102. Xas a library target.
  103. XThe new target is defined
  104. Xwith the .LIBRARY attribute set and the \fImember.o\fP portion of the
  105. Xconstruct is
  106. Xdeclared as a prerequisite of the lib target.
  107. XIf the construct \fIlib(member.o)\fP
  108. Xappears as a prerequisite of a target in the
  109. Xmakefile, that target has the new name of the lib assigned as its
  110. Xprerequisite.  Thus the following example:
  111. X.RS
  112. X.sp
  113. X.nf
  114. Xa.out : ml.a(a.o) ml.a(b.o); $(CC) \-o $@  $<
  115. XX
  116. X\&.c.o :; $(CC) \-c $(CFLAGS) \-o $@  $<
  117. X%.a:
  118. X\tar rv $@ $<
  119. X\tranlib $@
  120. X\trm \-rf $<
  121. X.sp
  122. X.fi
  123. X.RE
  124. Xconstructs the following dependency
  125. Xgraph.
  126. X.RS
  127. X.sp
  128. X.nf
  129. Xa.out : ml.a; $(CC) \-o $@  $<
  130. Xml.a .LIBRARY : a.o b.o
  131. XX
  132. X%.o : %.c ; $(CC) -c $(CFLAGS) \-o $@  $<
  133. X%.a :
  134. X\tar rv $@ $<
  135. X\tranlib $@
  136. X\trm -rf $<
  137. X.sp
  138. X.fi
  139. X.RE
  140. Xand making a.out then works as expected.
  141. X.PP
  142. XThe same thing happens for any target of the form \fIlib((entry))\fP.
  143. XThese targets have an
  144. Xadditional feature in that the \fIentry\fP target has the .SYMBOL attribute
  145. Xset automatically.
  146. X.PP
  147. XNOTE:  If the notion of entry points is supported by the archive and by
  148. X\fBdmake\fP (currently not the case) then
  149. X.B dmake
  150. Xwill search the archive for the entry point and return not only the
  151. Xmodification time of the member which defines the entry but also the name of
  152. Xthe member file.  This name will then replace \fIentry\fP and will be used for
  153. Xmaking the member file.  Once bound to an archive member the .SYMBOL
  154. Xattribute is removed from the target.
  155. XThis feature is presently disabled as there is little standardization
  156. Xamong archive formats, and we have yet to find a makefile utilizing this
  157. Xfeature (possibly due to the fact that it is unimplemented in most versions
  158. Xof UNIX Make).
  159. X.PP
  160. XFinally, when
  161. X.B dmake
  162. Xlooks for a library member it must first locate the library file.
  163. XIt does so by first looking for the library relative to the current directory
  164. Xand if it is not found it then looks relative to the current value of
  165. X$(TMD).  This allows commonly used libraries to be kept near the root of
  166. Xa source tree and to be easily found by
  167. X.B dmake\fR.\fP
  168. X.SH "KEEP STATE"
  169. X.B dmake
  170. Xsupports the keeping of state information for targets that it makes whenever
  171. Xthe macro .KEEP_STATE is assigned a value.  The value of the macro should be
  172. Xthe name of a state file that will contain the state information.  If state
  173. Xkeeping is enabled then each target that does not poses the .NOSTATE
  174. Xattribute will have a record written into the state file indicating the
  175. Xtarget's name, the current directory, the command used to update the target,
  176. Xand which, if any, :: rule is being used.  When you make this target again
  177. Xif any of this information does not match the previous settings and the
  178. Xtarget is not out dated it will still be re\-made.  The assumption is that one
  179. Xof the conditions above has changed and that we wish to remake the target.
  180. XFor example,
  181. Xstate keeping is used in the maintenance of
  182. X.B dmake
  183. Xto test compile different versions of the source using different compilers.
  184. XChanging the compiler causes the compilation flags to be modified and hence
  185. Xall sources to be recompiled.
  186. X.PP
  187. XThe state file is an ascii file and is portable, however it is
  188. Xnot in human readable form as the entries represent hash keys of the above
  189. Xinformation.
  190. X.PP
  191. XThe Sun Microsystem's Make construct
  192. X.RS
  193. X.sp
  194. X\&.KEEP_STATE :
  195. X.sp
  196. X.RE
  197. Xis recognized and is mapped to \fB.KEEP_STATE:=_state.mk\fP.
  198. XThe
  199. X.B dmake
  200. Xversion of state keeping does not include scanning C source files for
  201. Xdependencies like Sun Make.  This is specific to C programs and it was
  202. Xfelt that it does not belong in make.
  203. X.B dmake
  204. Xinstead provides the tool, \fBcdepend\fP, to scan C source files and to produce
  205. Xdepedency information.  Users are free to modify cdepend to produce other
  206. Xdependency files.  (NOTE:
  207. X.B cdepend
  208. Xdoes not come with the distribution at this time, but will be available in
  209. Xa patch in the near future)
  210. X.SH "MULTI PROCESSING"
  211. XIf the architecture supports it then \fBdmake\fP is capable of making a target's
  212. Xprerequisites in parallel.  \fBdmake\fP will make as much in parallel as it
  213. Xcan and use a number of child processes up to the maximum specified by
  214. XMAXPROCESS or by the value supplied to the \-P command line flag.
  215. XA parallel make is enabled by setting the value of MAXPROCESS (either directly
  216. Xor via \-P option) to a value which is > 1.
  217. X\fBdmake\fP guarantees that all dependencies as specified in the makefile are
  218. Xhonored.  A target will not be made until all of its prerequisites have been
  219. Xmade.
  220. XIf a parallel make is being performed then the following restrictions on
  221. Xparallelism are enforced.
  222. X.RS
  223. X.IP 1.
  224. XIndividual recipe lines in a non-group recipe are performed sequentially in
  225. Xthe order in which they are specified within the makefile and in parallel with
  226. Xthe recipes of other targets.
  227. X.IP 2.
  228. XIf a target contains multiple recipe definitions (cf. :: rules) then these are
  229. Xperformed sequentially in the order in which the :: rules are specified within
  230. Xthe makefile and in parallel with the recipes of other targets.
  231. X.IP 3.
  232. XIf a target rule contains the `!' modifier, then the recipe is performed
  233. Xsequentially for the list of outdated prerequisites and in parallel with the recipes of other targets.
  234. X.IP 4.
  235. XIf a target has the .SEQUENTIAL attribute set then all of its prerequisites
  236. Xare made sequentially relative to one another (as if MAXPROCESS=1), but in
  237. Xparallel with other targets in the makefile.
  238. X.RE
  239. X.PP
  240. XNote:  If you specify a parallel make then
  241. Xthe order of target update and the order in which the associated recipes are
  242. Xinvoked will not correspond to that displayed by the \-n flag.
  243. X.SH "CONDITIONALS"
  244. X.B dmake
  245. Xsupports a makefile construct called a \fIconditional\fR.  It allows
  246. Xthe user
  247. Xto conditionally select portions of makefile text for input processing
  248. Xand to discard other portions.  This becomes useful for
  249. Xwriting makefiles that are intended to function for more than one target
  250. Xhost and environment.  The conditional expression is specified as follows:
  251. X.sp
  252. X.RS
  253. X.nf
  254. X\&.IF  \fIexpression\fR
  255. XX   ... if text ...
  256. X\&.ELIF  \fIexpression\fR
  257. XX   ... if text ...
  258. X\&.ELSE
  259. XX   ... else text ...
  260. X\&.END
  261. X.RE
  262. X.fi
  263. X.sp
  264. XThe .ELSE and .ELIF portions are optional, and the conditionals may be
  265. Xnested (ie.  the text may contain another conditional).
  266. X\&.IF, .ELSE, and .END
  267. Xmay appear anywhere in the makefile, but a single conditional expression
  268. Xmay not span multiple makefiles.
  269. X.PP
  270. X\fIexpression\fR can be one of the following three forms:
  271. X.sp
  272. X\t<text> | <text> == <text> | <text> != <text>
  273. X.sp
  274. Xwhere \fItext\fR is either text or a macro expression.  In any case,
  275. Xbefore the comparison is made, the expression is expanded.  The text
  276. Xportions are then selected and compared.  White space at the start and
  277. Xend of the text portion is discarded before the comparison.  This means
  278. Xthat a macro that evaluates to nothing but white space is considered a
  279. XNULL value for the purpose of the comparison.
  280. XIn the first case the expression evaluates TRUE if the text is not NULL
  281. Xotherwise it evaluates FALSE.  The remaining two cases both evaluate the
  282. Xexpression on the basis of a string comparison.
  283. XIf a macro expression needs to be equated to a NULL string then compare it to
  284. Xthe value of the macro $(NULL).
  285. XYou can use the $(shell ...) macro to construct more complex test expressions.
  286. X.SH "EXAMPLES"
  287. X.RS
  288. X.nf
  289. X.sp
  290. X# A simple example showing how to use make
  291. X#
  292. Xprgm : a.o b.o
  293. XX    cc a.o b.o \-o prgm
  294. Xa.o : a.c g.h
  295. XX    cc a.c \-o $@
  296. Xb.o : b.c g.h
  297. XX    cc b.c \-o $@
  298. X.fi
  299. X.RE
  300. X.sp
  301. XIn the previous
  302. Xexample prgm is remade only if a.o and/or b.o is out of date with
  303. Xrespect to prgm.
  304. XThese dependencies can be stated more concisely
  305. Xby using the inference rules defined in the standard startup file.
  306. XThe default rule for making .o's from .c's looks something like this:
  307. X.sp
  308. X\&\t%.o : %.c; cc \-c $(CFLAGS) \-o $@ $<
  309. X.sp
  310. XSince there exists a rule (defined in the startup file)
  311. Xfor making .o's from .c's
  312. X\fBdmake\fR will use that rule
  313. Xfor manufacturing a .o from a .c and we can specify our dependencies
  314. Xmore concisely.
  315. X.sp
  316. X.RS
  317. X.nf
  318. Xprgm : a.o b.o
  319. XX    cc \-o prgm $<
  320. Xa.o b.o : g.h
  321. X.fi
  322. X.RE
  323. X.sp
  324. XA more general way to say the above using the new macro expansions
  325. Xwould be:
  326. X.sp
  327. X.RS
  328. X.nf
  329. XSRC = a b
  330. XOBJ = {$(SRC)}.o
  331. X.sp
  332. Xprgm : $(OBJ)
  333. XX    cc \-o $@ $<
  334. X.sp
  335. X$(OBJ) : g.h
  336. X.fi
  337. X.RE
  338. X.sp
  339. XIf we want to keep the objects in a separate directory, called
  340. Xobjdir, then we would write
  341. Xsomething like this.
  342. X.sp
  343. X.RS
  344. X.nf
  345. XSRC = a b
  346. XOBJ = {$(SRC)}.o
  347. X.sp
  348. Xprgm : $(OBJ)
  349. XX    cc $< \-o $@
  350. X.sp
  351. X$(OBJ) : g.h
  352. X\&%.o : %.c
  353. XX    $(CC) \-c $(CFLAGS) \-o $(@:f) $<
  354. XX    mv $(@:f) objdir
  355. XX
  356. X\&.SOURCE.o : objdir        # tell make to look here for .o's
  357. X.fi
  358. X.RE
  359. X.sp
  360. XAn example of building library members would go something like this:
  361. X(NOTE:  The same rules as above will be used to produce .o's from .c's)
  362. X.sp
  363. X.RS
  364. X.nf
  365. XSRC\t= a b
  366. XLIB\t= lib
  367. XLIBm\t= { $(SRC) }.o
  368. X.sp
  369. Xprgm: $(LIB)
  370. XX    cc \-o $@ $(LIB)
  371. X.sp
  372. X$(LIB) .LIBRARY : $(LIBm)
  373. XX    ar rv $@ $<
  374. XX    rm $<
  375. X.fi
  376. X.RE
  377. X.sp
  378. XFinally, suppose that each of the source files in the previous example had
  379. Xthe `:' character in their target name.  Then we would write the above example
  380. Xas:
  381. X.sp
  382. X.RS
  383. X.nf
  384. XSRC\t= f:a f:b
  385. XLIB\t= lib
  386. XLIBm\t= "{ $(SRC) }.o"        # put quotes around each token
  387. X.sp
  388. Xprgm: $(LIB)
  389. XX    cc \-o $@ $(LIB)
  390. X.sp
  391. X$(LIB) .LIBRARY : $(LIBm)
  392. XX    ar rv $@ $<
  393. XX    rm $<
  394. X.fi
  395. X.RE
  396. X.SH "COMPATIBILITY"
  397. XThere are two notable differences between 
  398. X.B \fBdmake\fR
  399. Xand the standard version of BSD UNIX 4.2/4.3 Make.
  400. X.RS
  401. X.IP 1. .3i
  402. XBSD UNIX 4.2/4.3 Make supports wild card filename expansion for
  403. Xprerequisite names.  Thus if a directory contains a.h, b.h and c.h, then a
  404. Xline like
  405. X.sp
  406. X\ttarget: *.h
  407. X.sp
  408. Xwill cause UNIX make to expand the *.h into "a.h b.h c.h".  \fBdmake\fR
  409. Xdoes not support this type of filename expansion.
  410. X.IP 2. .3i
  411. XUnlike UNIX make, touching a library member causes \fBdmake\fR
  412. Xto search the library for the member name and to update the library time stamp.
  413. XThis is only implemented in the UNIX version.
  414. XMSDOS and other versions may not have librarians that keep file time stamps,
  415. Xas a result \fBdmake\fR touches the library file itself, and prints a warning.
  416. X.RE
  417. X.PP
  418. X\fBdmake\fP is not compatible with GNU Make.  In particular it does not
  419. Xunderstand GNU Make's macro expansions that query the file system.
  420. X.PP
  421. X.B dmake
  422. Xis fully compatible with SYSV AUGMAKE, and supports the following AUGMAKE
  423. Xfeatures:
  424. X.RS
  425. X.IP 1. .3i
  426. XThe word \fBinclude\fP appearing at the start of a line can be used instead of
  427. Xthe ".INCLUDE :" construct understood by \fBdmake\fP.
  428. X.IP 2. .3i
  429. XThe macro modifier expression $(macro:str=sub) is understood and is equivalent
  430. Xto the expression $(macro:s/str/sub), with the restriction that str must match
  431. Xthe following regular expression:
  432. X.sp
  433. X\tstr[ |\et][ |\et]*
  434. X.sp
  435. X(ie. str only matches at the end of a token where str is a suffix and is
  436. Xterminated by a space, a tab, or end of line)
  437. X.IP 3.
  438. XThe macro % is defined to be $@ (ie. $% expands to the same value as $@).
  439. X.IP 4.
  440. XThe AUGMAKE notion of libraries is handled correctly.
  441. X.IP 5.
  442. XWhen defining special targets for the inference rules and the AUGMAKE special
  443. Xtarget handling is enabled then the special target
  444. X\&.X is equivalent to the %-rule "% : %.X".
  445. X.IP 6.
  446. XDirectories are always made if you specify \fB\-A\fP.  This is consistent
  447. Xwith other UNIX versions of Make.
  448. X.IP 7.
  449. XMakefiles that utilize virtual targets to force making of other targets work
  450. Xas expected if AUGMAKE special target handling is enabled.  For example:
  451. X.sp
  452. X.nf
  453. X\tFRC:
  454. X\tmyprog.o : myprog.c $(FRC) ; ...
  455. X.fi
  456. X.sp
  457. XWorks as expected if you issue the command
  458. X.sp
  459. X\t'\fBdmake\fP \-A FRC=FRC'
  460. X.sp
  461. Xbut fails with a 'don't know how to make FRC'
  462. Xerror message if you do not specify AUGMAKE special target handling via
  463. Xthe \-A flag (or by setting AUGMAKE:=yes internally).
  464. X.RE
  465. X.SH "LIMITS"
  466. XIn some environments the length of an argument string is restricted.
  467. X(e.g. MSDOS command line arguments cannot be longer than 128 bytes if you are
  468. Xusing the standard command.com command interpreter as your shell,
  469. X.B dmake
  470. Xtext diversions may help in these situations.)
  471. X.SH "PORTABILITY"
  472. XTo write makefiles that can be moved from one environment to another requires
  473. Xsome forethought.  In particular you must define as macros all those things
  474. Xthat may be different in the new environment.
  475. X.B dmake
  476. Xhas two facilities that help to support writing portable makefiles, recursive
  477. Xmacros and conditional expressions.  The recursive macros, allow one to define
  478. Xenvironment configurations that allow different environments for similar types
  479. Xof operating systems.  For example the same make script can be used for SYSV and
  480. XBSD but with different macro definitions.
  481. X.PP
  482. XTo write a makefile that is portable between UNIX and MSDOS requires both
  483. Xfeatures since in almost all cases you will need to define new recipes for
  484. Xmaking targets.  The recipes will probably be quite different since the
  485. Xcapabilities of the tools on each machine are different.  Different
  486. Xmacros will be needed to help handle the smaller differences in the two
  487. Xenvironments.
  488. X.SH FILES
  489. XMakefile, makefile, startup.mk (use dmake \-V to tell you where the startup
  490. Xfile is)
  491. X.SH "SEE ALSO"
  492. Xsh(1), csh(1), touch(1), f77(1), pc(1), cc(1)
  493. X.br
  494. XS.I. Feldman  \fIMake - A Program for Maintaining Computer Programs\fP
  495. X.SH "AUTHOR"
  496. XDennis Vadura, CS Dept. University of Waterloo. dvadura@watdragon.uwaterloo.ca
  497. X.br
  498. XMany thanks to Carl Seger for his helpful suggestions,
  499. Xand to Trevor John Thompson for his many excellent ideas and
  500. Xinformative bug reports.
  501. X.SH BUGS
  502. XSome system commands return non-zero status inappropriately.
  503. XUse
  504. X.B \-i
  505. X(`\-' within the makefile) to overcome the difficulty.
  506. X.PP
  507. XSome systems do not have easily accessible
  508. Xtime stamps for library members (MSDOS, AMIGA, etc)
  509. Xfor these \fBdmake\fR uses the time stamp of the library instead and prints
  510. Xa warning the first time it does so.  This is almost always ok, except when
  511. Xmultiple makefiles update a single library file.  In these instances it is
  512. Xpossible to miss an update if one is not careful.
  513. X.PP
  514. XThis man page is way too long.
  515. XSHAR_EOF
  516. Xchmod 0440 man/dmake.tf ||
  517. Xecho 'restore of man/dmake.tf failed'
  518. XWc_c="`wc -c < 'man/dmake.tf'`"
  519. Xtest 98450 -eq "$Wc_c" ||
  520. X    echo 'man/dmake.tf: original size 98450, current size' "$Wc_c"
  521. Xfi
  522. X# ============= msdos/ztcdos/config.h ==============
  523. Xif test ! -d 'msdos'; then
  524. X    echo 'x - creating directory msdos'
  525. X    mkdir 'msdos'
  526. Xfi
  527. Xif test ! -d 'msdos/ztcdos'; then
  528. X    echo 'x - creating directory msdos/ztcdos'
  529. X    mkdir 'msdos/ztcdos'
  530. Xfi
  531. Xif test -f 'msdos/ztcdos/config.h' -a X"$1" != X"-c"; then
  532. X    echo 'x - skipping msdos/ztcdos/config.h (File already exists)'
  533. Xelse
  534. Xecho 'x - extracting msdos/ztcdos/config.h (Text)'
  535. Xsed 's/^X//' << 'SHAR_EOF' > 'msdos/ztcdos/config.h' &&
  536. X/* RCS      -- $Header: /u2/dvadura/src/generic/dmake/src/msdos/ztcdos/RCS/config.h,v 1.1 91/06/24 11:42:19 dvadura Exp $
  537. X-- SYNOPSIS -- Configurarion include file.
  538. X-- 
  539. X-- DESCRIPTION
  540. X--     There is one of these for each specific machine configuration.
  541. X--    It can be used to further tweek the machine specific sources
  542. X--    so that they compile.
  543. X--
  544. X-- AUTHOR
  545. X--      Dennis Vadura, dvadura@watdragon.uwaterloo.ca
  546. X--      CS DEPT, University of Waterloo, Waterloo, Ont., Canada
  547. X--
  548. X-- COPYRIGHT
  549. X--      Copyright (c) 1990 by Dennis Vadura.  All rights reserved.
  550. X-- 
  551. X--      This program is free software; you can redistribute it and/or
  552. X--      modify it under the terms of the GNU General Public License
  553. X--      (version 1), as published by the Free Software Foundation, and
  554. X--      found in the file 'LICENSE' included with this distribution.
  555. X-- 
  556. X--      This program is distributed in the hope that it will be useful,
  557. X--      but WITHOUT ANY WARRANTY; without even the implied warrant of
  558. X--      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  559. X--      GNU General Public License for more details.
  560. X-- 
  561. X--      You should have received a copy of the GNU General Public License
  562. X--      along with this program;  if not, write to the Free Software
  563. X--      Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  564. X--
  565. X-- LOG
  566. X--     $Log:    config.h,v $
  567. XX * Revision 1.1  91/06/24  11:42:19  dvadura
  568. XX * dmake release Version 3.7
  569. XX * 
  570. XX * Revision 1.2  91/05/14  07:35:52  dvadura
  571. XX * Somehow I lost the CONST declaration.
  572. XX * 
  573. XX * Revision 1.1  91/05/06  15:25:49  dvadura
  574. XX * dmake Release Version 3.7
  575. XX * 
  576. X*/
  577. XX
  578. X/* in sysintf.c: SIGQUIT is used, this is not defined in ZTC */
  579. X#ifndef SIGQUIT
  580. X#   define SIGQUIT SIGTERM
  581. X#endif
  582. XX
  583. X/* in sysintf.c: tzset is not supported by ZTC */
  584. X#define tzset()
  585. XX
  586. X/* ZTC uses it's own swapping spawn. */
  587. X#define spawnvpe(a,b,c,d) spawnvp(a,b,c)
  588. XX
  589. X#ifndef CONST
  590. X#   define CONST const
  591. X#endif
  592. XX
  593. X#ifndef MSDOS
  594. X#   define MSDOS 1
  595. X#endif
  596. XX
  597. Xextern unsigned _psp;
  598. XSHAR_EOF
  599. Xchmod 0440 msdos/ztcdos/config.h ||
  600. Xecho 'restore of msdos/ztcdos/config.h failed'
  601. XWc_c="`wc -c < 'msdos/ztcdos/config.h'`"
  602. Xtest 1976 -eq "$Wc_c" ||
  603. X    echo 'msdos/ztcdos/config.h: original size 1976, current size' "$Wc_c"
  604. Xfi
  605. X# ============= msdos/ztcdos/config.mk ==============
  606. Xif test -f 'msdos/ztcdos/config.mk' -a X"$1" != X"-c"; then
  607. X    echo 'x - skipping msdos/ztcdos/config.mk (File already exists)'
  608. Xelse
  609. Xecho 'x - extracting msdos/ztcdos/config.mk (Text)'
  610. Xsed 's/^X//' << 'SHAR_EOF' > 'msdos/ztcdos/config.mk' &&
  611. X# This is the ZTC DOS configuration file for DMAKE
  612. X#    It simply modifies the values of SRC, and checks to see if
  613. X#    OSENVIRONMENT is defined.  If so it includes the appropriate
  614. X#    config.mk file.
  615. X#
  616. X# It also sets the values of .SOURCE.c and .SOURCE.h to include the local
  617. X# directory.
  618. X#
  619. Xosrdir := $(OS)$(DIRSEPSTR)$(OSRELEASE)
  620. XX
  621. XTMPDIR :=
  622. X.EXPORT : TMPDIR
  623. XX
  624. X# Definition of macros for library, and C startup code.
  625. X# Swapping for DOS versions is enabled by default.  ZTC will automatically
  626. X# perform swapping to XMS, EMS or disk by including _swapl.obj at link time.
  627. X# To be most effective, _swapl.obj should be the first file linked so we
  628. X# assign it to CSTARTUP if needed.
  629. X.IF $(SWAP) == y
  630. XX   CSTARTUP = _swapl.obj
  631. X.END
  632. XX
  633. X# The following sources are required for ZTC
  634. X# The tempnam supplied with ZTC doesn't handle a NULL dir.
  635. XOSR_SRC = tempnam.c environ.c
  636. X.SETDIR=$(osrdir) : $(OSR_SRC)
  637. XX
  638. XSRC += $(OSR_SRC)
  639. X.SOURCE.h : $(osrdir)
  640. XX
  641. X# Local configuration modifications for CFLAGS 
  642. X# If you have a 286, you can use -2 or appropriate to get better code, 
  643. X# in that case uncomment the line below.  (You can also simply set
  644. X# it in the CL environment variable.)
  645. X#CFLAGS += -2
  646. XASFLAGS += -t -mx $(S_$(MODEL))
  647. XX
  648. X# Redefine this, it isn't needed!
  649. XLDTAIL = ;
  650. XX
  651. X# Debugging libraries
  652. XDB_LDFLAGS += -g
  653. XDB_LDLIBS  +=
  654. XX
  655. X# NO Debug ZTC flags:
  656. X#
  657. XX
  658. XCFLAGS      += -I$(osrdir) $(C_$(MODEL))
  659. XCFLAGS      += -DM_I86=1 -DMSDOS
  660. XCFLAGS      += -b             # use large compiler
  661. X#CFLAGS      += -w            # no warnings
  662. XCFLAGS      += -mi            # integer only
  663. XCFLAGS      += -p             # no auto-prototyping
  664. XNDB_CFLAGS  += -o
  665. XDB_CFLAGS   += -g
  666. XX
  667. X# Redefine rule for making our objects, we don't need mv
  668. X%$O : %.c ;% $(CC) -c $(CFLAGS) -o$@ $<
  669. XX
  670. X# See if we modify anything in the lower levels.
  671. X.IF $(OSENVIRONMENT) != $(NULL)
  672. XX   .INCLUDE .IGNORE : $(osrdir)$(DIRSEPSTR)$(OSENVIRONMENT)$(DIRSEPSTR)config.mk
  673. X.END
  674. XX
  675. XC_s =
  676. XC_m = -mM
  677. XC_c = -mC
  678. XC_l = -mL
  679. XX
  680. XS_s = -Dmsmall
  681. XS_m = -Dmmedium
  682. XS_c = -Dmcompact
  683. XS_l = -Dmlarge
  684. XSHAR_EOF
  685. Xchmod 0640 msdos/ztcdos/config.mk ||
  686. Xecho 'restore of msdos/ztcdos/config.mk failed'
  687. XWc_c="`wc -c < 'msdos/ztcdos/config.mk'`"
  688. Xtest 1990 -eq "$Wc_c" ||
  689. X    echo 'msdos/ztcdos/config.mk: original size 1990, current size' "$Wc_c"
  690. Xfi
  691. X# ============= msdos/ztcdos/environ.c ==============
  692. Xif test -f 'msdos/ztcdos/environ.c' -a X"$1" != X"-c"; then
  693. X    echo 'x - skipping msdos/ztcdos/environ.c (File already exists)'
  694. Xelse
  695. Xecho 'x - extracting msdos/ztcdos/environ.c (Text)'
  696. Xsed 's/^X//' << 'SHAR_EOF' > 'msdos/ztcdos/environ.c' &&
  697. X/*LINTLIBRARY*/
  698. X#include <stdio.h>
  699. X#include <string.h>
  700. X#include <stdlib.h>
  701. X#include "alloc.h"
  702. XX
  703. X/* ZTC++ doesn't have environ, so we have to create one. */
  704. XX
  705. Xextern char *_envptr;
  706. Xchar **environ = { NULL };
  707. XX
  708. Xvoid
  709. Xmake_env()
  710. X{
  711. XX    int        i;
  712. XX    char    *cp;
  713. XX
  714. XX    for (i = 0, cp = _envptr; *cp; i++, cp += strlen(cp)+1)
  715. XX        ;
  716. XX
  717. XX    TALLOC(environ, i+1, char*);
  718. XX
  719. XX    for (i = 0, cp = _envptr; *cp; i++, cp += strlen(cp)+1)
  720. XX        environ[i] = cp;
  721. XX
  722. XX    return;
  723. X}
  724. XX
  725. Xvoid
  726. Xfree_env()
  727. X{
  728. XX    FREE(environ);
  729. XX
  730. XX    return;
  731. X}
  732. XSHAR_EOF
  733. Xchmod 0440 msdos/ztcdos/environ.c ||
  734. Xecho 'restore of msdos/ztcdos/environ.c failed'
  735. XWc_c="`wc -c < 'msdos/ztcdos/environ.c'`"
  736. Xtest 473 -eq "$Wc_c" ||
  737. X    echo 'msdos/ztcdos/environ.c: original size 473, current size' "$Wc_c"
  738. Xfi
  739. X# ============= msdos/ztcdos/lib.rsp ==============
  740. Xif test -f 'msdos/ztcdos/lib.rsp' -a X"$1" != X"-c"; then
  741. X    echo 'x - skipping msdos/ztcdos/lib.rsp (File already exists)'
  742. Xelse
  743. Xecho 'x - extracting msdos/ztcdos/lib.rsp (Text)'
  744. Xsed 's/^X//' << 'SHAR_EOF' > 'msdos/ztcdos/lib.rsp' &&
  745. XX
  746. XSHAR_EOF
  747. Xchmod 0640 msdos/ztcdos/lib.rsp ||
  748. Xecho 'restore of msdos/ztcdos/lib.rsp failed'
  749. XWc_c="`wc -c < 'msdos/ztcdos/lib.rsp'`"
  750. Xtest 1 -eq "$Wc_c" ||
  751. X    echo 'msdos/ztcdos/lib.rsp: original size 1, current size' "$Wc_c"
  752. Xfi
  753. X# ============= msdos/ztcdos/libswp.rsp ==============
  754. Xif test -f 'msdos/ztcdos/libswp.rsp' -a X"$1" != X"-c"; then
  755. X    echo 'x - skipping msdos/ztcdos/libswp.rsp (File already exists)'
  756. Xelse
  757. Xecho 'x - extracting msdos/ztcdos/libswp.rsp (Text)'
  758. Xsed 's/^X//' << 'SHAR_EOF' > 'msdos/ztcdos/libswp.rsp' &&
  759. XX
  760. XSHAR_EOF
  761. Xchmod 0640 msdos/ztcdos/libswp.rsp ||
  762. Xecho 'restore of msdos/ztcdos/libswp.rsp failed'
  763. XWc_c="`wc -c < 'msdos/ztcdos/libswp.rsp'`"
  764. Xtest 1 -eq "$Wc_c" ||
  765. X    echo 'msdos/ztcdos/libswp.rsp: original size 1, current size' "$Wc_c"
  766. Xfi
  767. X# ============= msdos/ztcdos/mk.bat ==============
  768. Xif test -f 'msdos/ztcdos/mk.bat' -a X"$1" != X"-c"; then
  769. X    echo 'x - skipping msdos/ztcdos/mk.bat (File already exists)'
  770. Xelse
  771. Xecho 'x - extracting msdos/ztcdos/mk.bat (Text)'
  772. Xsed 's/^X//' << 'SHAR_EOF' > 'msdos/ztcdos/mk.bat' &&
  773. Xmd objects
  774. Xztc -c -I. -Imsdos -Imsdos\ztcdos -mL -DM_I86=1 -DMSDOS -b -mi -p -o -oobjects\infer.obj infer.c
  775. Xztc -c -I. -Imsdos -Imsdos\ztcdos -mL -DM_I86=1 -DMSDOS -b -mi -p -o -oobjects\make.obj make.c
  776. Xztc -c -I. -Imsdos -Imsdos\ztcdos -mL -DM_I86=1 -DMSDOS -b -mi -p -o -oobjects\stat.obj stat.c
  777. Xztc -c -I. -Imsdos -Imsdos\ztcdos -mL -DM_I86=1 -DMSDOS -b -mi -p -o -oobjects\expand.obj expand.c
  778. Xztc -c -I. -Imsdos -Imsdos\ztcdos -mL -DM_I86=1 -DMSDOS -b -mi -p -o -oobjects\dmstring.obj dmstring.c
  779. Xztc -c -I. -Imsdos -Imsdos\ztcdos -mL -DM_I86=1 -DMSDOS -b -mi -p -o -oobjects\hash.obj hash.c
  780. Xztc -c -I. -Imsdos -Imsdos\ztcdos -mL -DM_I86=1 -DMSDOS -b -mi -p -o -oobjects\dag.obj dag.c
  781. Xztc -c -I. -Imsdos -Imsdos\ztcdos -mL -DM_I86=1 -DMSDOS -b -mi -p -o -oobjects\dmake.obj dmake.c
  782. Xztc -c -I. -Imsdos -Imsdos\ztcdos -mL -DM_I86=1 -DMSDOS -b -mi -p -o -oobjects\path.obj path.c
  783. Xztc -c -I. -Imsdos -Imsdos\ztcdos -mL -DM_I86=1 -DMSDOS -b -mi -p -o -oobjects\imacs.obj imacs.c
  784. Xztc -c -I. -Imsdos -Imsdos\ztcdos -mL -DM_I86=1 -DMSDOS -b -mi -p -o -oobjects\sysintf.obj sysintf.c
  785. Xztc -c -I. -Imsdos -Imsdos\ztcdos -mL -DM_I86=1 -DMSDOS -b -mi -p -o -oobjects\parse.obj parse.c
  786. Xztc -c -I. -Imsdos -Imsdos\ztcdos -mL -DM_I86=1 -DMSDOS -b -mi -p -o -oobjects\getinp.obj getinp.c
  787. Xztc -c -I. -Imsdos -Imsdos\ztcdos -mL -DM_I86=1 -DMSDOS -b -mi -p -o -oobjects\quit.obj quit.c
  788. Xztc -c -I. -Imsdos -Imsdos\ztcdos -mL -DM_I86=1 -DMSDOS -b -mi -p -o -oobjects\state.obj state.c
  789. Xztc -c -I. -Imsdos -Imsdos\ztcdos -mL -DM_I86=1 -DMSDOS -b -mi -p -o -oobjects\basename.obj basename.c
  790. Xztc -c -I. -Imsdos -Imsdos\ztcdos -mL -DM_I86=1 -DMSDOS -b -mi -p -o -oobjects\dmdump.obj dmdump.c
  791. Xztc -c -I. -Imsdos -Imsdos\ztcdos -mL -DM_I86=1 -DMSDOS -b -mi -p -o -oobjects\macparse.obj macparse.c
  792. Xztc -c -I. -Imsdos -Imsdos\ztcdos -mL -DM_I86=1 -DMSDOS -b -mi -p -o -oobjects\rulparse.obj rulparse.c
  793. Xztc -c -I. -Imsdos -Imsdos\ztcdos -mL -DM_I86=1 -DMSDOS -b -mi -p -o -oobjects\percent.obj percent.c
  794. Xztc -c -I. -Imsdos -Imsdos\ztcdos -mL -DM_I86=1 -DMSDOS -b -mi -p -o -oobjects\function.obj function.c
  795. Xztc -c -I. -Imsdos -Imsdos\ztcdos -mL -DM_I86=1 -DMSDOS -b -mi -p -o -oobjects\ruletab.obj msdos\ruletab.c
  796. Xztc -c -I. -Imsdos -Imsdos\ztcdos -mL -DM_I86=1 -DMSDOS -b -mi -p -o -oobjects\dirbrk.obj msdos\dirbrk.c
  797. Xztc -c -I. -Imsdos -Imsdos\ztcdos -mL -DM_I86=1 -DMSDOS -b -mi -p -o -oobjects\runargv.obj msdos\runargv.c
  798. Xztc -c -I. -Imsdos -Imsdos\ztcdos -mL -DM_I86=1 -DMSDOS -b -mi -p -o -oobjects\arlib.obj msdos\arlib.c
  799. Xztc -c -I. -Imsdos -Imsdos\ztcdos -mL -DM_I86=1 -DMSDOS -b -mi -p -o -oobjects\_chdir.obj msdos\_chdir.c
  800. Xztc -c -I. -Imsdos -Imsdos\ztcdos -mL -DM_I86=1 -DMSDOS -b -mi -p -o -oobjects\switchar.obj msdos\switchar.c
  801. Xztc -c -I. -Imsdos -Imsdos\ztcdos -mL -DM_I86=1 -DMSDOS -b -mi -p -o -oobjects\rmprq.obj msdos\rmprq.c
  802. Xztc -c -I. -Imsdos -Imsdos\ztcdos -mL -DM_I86=1 -DMSDOS -b -mi -p -o -oobjects\tee.obj msdos\tee.c
  803. Xztc -c -I. -Imsdos -Imsdos\ztcdos -mL -DM_I86=1 -DMSDOS -b -mi -p -o -oobjects\tempnam.obj msdos\ztcdos\tempnam.c
  804. Xztc -c -I. -Imsdos -Imsdos\ztcdos -mL -DM_I86=1 -DMSDOS -b -mi -p -o -oobjects\environ.obj msdos\ztcdos\environ.c
  805. Xcopy msdos\ztcdos\startup.mk startup.mk
  806. Xblink  @msdos\ztcdos\obj.rsp,dmake.exe,NUL.MAP;
  807. XSHAR_EOF
  808. Xchmod 0640 msdos/ztcdos/mk.bat ||
  809. Xecho 'restore of msdos/ztcdos/mk.bat failed'
  810. XWc_c="`wc -c < 'msdos/ztcdos/mk.bat'`"
  811. Xtest 3232 -eq "$Wc_c" ||
  812. X    echo 'msdos/ztcdos/mk.bat: original size 3232, current size' "$Wc_c"
  813. Xfi
  814. X# ============= msdos/ztcdos/mkswp.bat ==============
  815. Xif test -f 'msdos/ztcdos/mkswp.bat' -a X"$1" != X"-c"; then
  816. X    echo 'x - skipping msdos/ztcdos/mkswp.bat (File already exists)'
  817. Xelse
  818. Xecho 'x - extracting msdos/ztcdos/mkswp.bat (Text)'
  819. Xsed 's/^X//' << 'SHAR_EOF' > 'msdos/ztcdos/mkswp.bat' &&
  820. Xmd objects
  821. Xztc -c -I. -Imsdos -Imsdos\ztcdos -mL -DM_I86=1 -DMSDOS -b -mi -p -o -oobjects\infer.obj infer.c
  822. Xztc -c -I. -Imsdos -Imsdos\ztcdos -mL -DM_I86=1 -DMSDOS -b -mi -p -o -oobjects\make.obj make.c
  823. Xztc -c -I. -Imsdos -Imsdos\ztcdos -mL -DM_I86=1 -DMSDOS -b -mi -p -o -oobjects\stat.obj stat.c
  824. Xztc -c -I. -Imsdos -Imsdos\ztcdos -mL -DM_I86=1 -DMSDOS -b -mi -p -o -oobjects\expand.obj expand.c
  825. Xztc -c -I. -Imsdos -Imsdos\ztcdos -mL -DM_I86=1 -DMSDOS -b -mi -p -o -oobjects\dmstring.obj dmstring.c
  826. Xztc -c -I. -Imsdos -Imsdos\ztcdos -mL -DM_I86=1 -DMSDOS -b -mi -p -o -oobjects\hash.obj hash.c
  827. Xztc -c -I. -Imsdos -Imsdos\ztcdos -mL -DM_I86=1 -DMSDOS -b -mi -p -o -oobjects\dag.obj dag.c
  828. Xztc -c -I. -Imsdos -Imsdos\ztcdos -mL -DM_I86=1 -DMSDOS -b -mi -p -o -oobjects\dmake.obj dmake.c
  829. Xztc -c -I. -Imsdos -Imsdos\ztcdos -mL -DM_I86=1 -DMSDOS -b -mi -p -o -oobjects\path.obj path.c
  830. Xztc -c -I. -Imsdos -Imsdos\ztcdos -mL -DM_I86=1 -DMSDOS -b -mi -p -o -oobjects\imacs.obj imacs.c
  831. Xztc -c -I. -Imsdos -Imsdos\ztcdos -mL -DM_I86=1 -DMSDOS -b -mi -p -o -oobjects\sysintf.obj sysintf.c
  832. Xztc -c -I. -Imsdos -Imsdos\ztcdos -mL -DM_I86=1 -DMSDOS -b -mi -p -o -oobjects\parse.obj parse.c
  833. Xztc -c -I. -Imsdos -Imsdos\ztcdos -mL -DM_I86=1 -DMSDOS -b -mi -p -o -oobjects\getinp.obj getinp.c
  834. Xztc -c -I. -Imsdos -Imsdos\ztcdos -mL -DM_I86=1 -DMSDOS -b -mi -p -o -oobjects\quit.obj quit.c
  835. Xztc -c -I. -Imsdos -Imsdos\ztcdos -mL -DM_I86=1 -DMSDOS -b -mi -p -o -oobjects\state.obj state.c
  836. Xztc -c -I. -Imsdos -Imsdos\ztcdos -mL -DM_I86=1 -DMSDOS -b -mi -p -o -oobjects\basename.obj basename.c
  837. Xztc -c -I. -Imsdos -Imsdos\ztcdos -mL -DM_I86=1 -DMSDOS -b -mi -p -o -oobjects\dmdump.obj dmdump.c
  838. Xztc -c -I. -Imsdos -Imsdos\ztcdos -mL -DM_I86=1 -DMSDOS -b -mi -p -o -oobjects\macparse.obj macparse.c
  839. Xztc -c -I. -Imsdos -Imsdos\ztcdos -mL -DM_I86=1 -DMSDOS -b -mi -p -o -oobjects\rulparse.obj rulparse.c
  840. Xztc -c -I. -Imsdos -Imsdos\ztcdos -mL -DM_I86=1 -DMSDOS -b -mi -p -o -oobjects\percent.obj percent.c
  841. Xztc -c -I. -Imsdos -Imsdos\ztcdos -mL -DM_I86=1 -DMSDOS -b -mi -p -o -oobjects\function.obj function.c
  842. Xztc -c -I. -Imsdos -Imsdos\ztcdos -mL -DM_I86=1 -DMSDOS -b -mi -p -o -oobjects\ruletab.obj msdos\ruletab.c
  843. Xztc -c -I. -Imsdos -Imsdos\ztcdos -mL -DM_I86=1 -DMSDOS -b -mi -p -o -oobjects\dirbrk.obj msdos\dirbrk.c
  844. Xztc -c -I. -Imsdos -Imsdos\ztcdos -mL -DM_I86=1 -DMSDOS -b -mi -p -o -oobjects\runargv.obj msdos\runargv.c
  845. Xztc -c -I. -Imsdos -Imsdos\ztcdos -mL -DM_I86=1 -DMSDOS -b -mi -p -o -oobjects\arlib.obj msdos\arlib.c
  846. Xztc -c -I. -Imsdos -Imsdos\ztcdos -mL -DM_I86=1 -DMSDOS -b -mi -p -o -oobjects\_chdir.obj msdos\_chdir.c
  847. Xztc -c -I. -Imsdos -Imsdos\ztcdos -mL -DM_I86=1 -DMSDOS -b -mi -p -o -oobjects\switchar.obj msdos\switchar.c
  848. Xztc -c -I. -Imsdos -Imsdos\ztcdos -mL -DM_I86=1 -DMSDOS -b -mi -p -o -oobjects\rmprq.obj msdos\rmprq.c
  849. Xztc -c -I. -Imsdos -Imsdos\ztcdos -mL -DM_I86=1 -DMSDOS -b -mi -p -o -oobjects\tee.obj msdos\tee.c
  850. Xztc -c -I. -Imsdos -Imsdos\ztcdos -mL -DM_I86=1 -DMSDOS -b -mi -p -o -oobjects\tempnam.obj msdos\ztcdos\tempnam.c
  851. Xztc -c -I. -Imsdos -Imsdos\ztcdos -mL -DM_I86=1 -DMSDOS -b -mi -p -o -oobjects\environ.obj msdos\ztcdos\environ.c
  852. Xcopy msdos\ztcdos\startup.mk startup.mk
  853. Xblink  @msdos\ztcdos\objswp.rsp,dmake.exe,NUL.MAP;
  854. XSHAR_EOF
  855. Xchmod 0640 msdos/ztcdos/mkswp.bat ||
  856. Xecho 'restore of msdos/ztcdos/mkswp.bat failed'
  857. XWc_c="`wc -c < 'msdos/ztcdos/mkswp.bat'`"
  858. Xtest 3235 -eq "$Wc_c" ||
  859. X    echo 'msdos/ztcdos/mkswp.bat: original size 3235, current size' "$Wc_c"
  860. Xfi
  861. X# ============= msdos/ztcdos/obj.rsp ==============
  862. Xif test -f 'msdos/ztcdos/obj.rsp' -a X"$1" != X"-c"; then
  863. X    echo 'x - skipping msdos/ztcdos/obj.rsp (File already exists)'
  864. Xelse
  865. Xecho 'x - extracting msdos/ztcdos/obj.rsp (Text)'
  866. Xsed 's/^X//' << 'SHAR_EOF' > 'msdos/ztcdos/obj.rsp' &&
  867. Xobjects\infer.obj+
  868. Xobjects\make.obj+
  869. Xobjects\stat.obj+
  870. Xobjects\expand.obj+
  871. Xobjects\dmstring.obj+
  872. Xobjects\hash.obj+
  873. Xobjects\dag.obj+
  874. Xobjects\dmake.obj+
  875. Xobjects\path.obj+
  876. Xobjects\imacs.obj+
  877. Xobjects\sysintf.obj+
  878. Xobjects\parse.obj+
  879. Xobjects\getinp.obj+
  880. Xobjects\quit.obj+
  881. Xobjects\state.obj+
  882. Xobjects\basename.obj+
  883. Xobjects\dmdump.obj+
  884. Xobjects\macparse.obj+
  885. Xobjects\rulparse.obj+
  886. Xobjects\percent.obj+
  887. Xobjects\function.obj+
  888. Xobjects\ruletab.obj+
  889. Xobjects\dirbrk.obj+
  890. Xobjects\runargv.obj+
  891. Xobjects\arlib.obj+
  892. Xobjects\_chdir.obj+
  893. Xobjects\switchar.obj+
  894. Xobjects\rmprq.obj+
  895. Xobjects\tee.obj+
  896. Xobjects\tempnam.obj+
  897. Xobjects\environ.obj
  898. XSHAR_EOF
  899. Xchmod 0640 msdos/ztcdos/obj.rsp ||
  900. Xecho 'restore of msdos/ztcdos/obj.rsp failed'
  901. XWc_c="`wc -c < 'msdos/ztcdos/obj.rsp'`"
  902. Xtest 614 -eq "$Wc_c" ||
  903. X    echo 'msdos/ztcdos/obj.rsp: original size 614, current size' "$Wc_c"
  904. Xfi
  905. X# ============= msdos/ztcdos/objswp.rsp ==============
  906. Xif test -f 'msdos/ztcdos/objswp.rsp' -a X"$1" != X"-c"; then
  907. X    echo 'x - skipping msdos/ztcdos/objswp.rsp (File already exists)'
  908. Xelse
  909. Xecho 'x - extracting msdos/ztcdos/objswp.rsp (Text)'
  910. Xsed 's/^X//' << 'SHAR_EOF' > 'msdos/ztcdos/objswp.rsp' &&
  911. X_swapl.obj+
  912. Xobjects\infer.obj+
  913. Xobjects\make.obj+
  914. Xobjects\stat.obj+
  915. Xobjects\expand.obj+
  916. Xobjects\dmstring.obj+
  917. Xobjects\hash.obj+
  918. Xobjects\dag.obj+
  919. Xobjects\dmake.obj+
  920. Xobjects\path.obj+
  921. Xobjects\imacs.obj+
  922. Xobjects\sysintf.obj+
  923. Xobjects\parse.obj+
  924. Xobjects\getinp.obj+
  925. Xobjects\quit.obj+
  926. Xobjects\state.obj+
  927. Xobjects\basename.obj+
  928. Xobjects\dmdump.obj+
  929. Xobjects\macparse.obj+
  930. Xobjects\rulparse.obj+
  931. Xobjects\percent.obj+
  932. Xobjects\function.obj+
  933. Xobjects\ruletab.obj+
  934. Xobjects\dirbrk.obj+
  935. Xobjects\runargv.obj+
  936. Xobjects\arlib.obj+
  937. Xobjects\_chdir.obj+
  938. Xobjects\switchar.obj+
  939. Xobjects\rmprq.obj+
  940. Xobjects\tee.obj+
  941. Xobjects\tempnam.obj+
  942. Xobjects\environ.obj
  943. XSHAR_EOF
  944. Xchmod 0640 msdos/ztcdos/objswp.rsp ||
  945. Xecho 'restore of msdos/ztcdos/objswp.rsp failed'
  946. XWc_c="`wc -c < 'msdos/ztcdos/objswp.rsp'`"
  947. Xtest 626 -eq "$Wc_c" ||
  948. X    echo 'msdos/ztcdos/objswp.rsp: original size 626, current size' "$Wc_c"
  949. Xfi
  950. X# ============= msdos/ztcdos/public.h ==============
  951. Xif test -f 'msdos/ztcdos/public.h' -a X"$1" != X"-c"; then
  952. X    echo 'x - skipping msdos/ztcdos/public.h (File already exists)'
  953. Xelse
  954. Xecho 'x - extracting msdos/ztcdos/public.h (Text)'
  955. Xsed 's/^X//' << 'SHAR_EOF' > 'msdos/ztcdos/public.h' &&
  956. X/* RCS      -- $Header$
  957. X-- WARNING  -- This file is AUTOMATICALLY GENERATED DO NOT EDIT IT
  958. X--
  959. X-- SYNOPSIS -- Local functions exported to be visible by others.
  960. X--
  961. X-- DESCRIPTION
  962. X--      This file is generated by 'genpub'.  Function declarations
  963. X--      that appear in this file are extracted by 'genpub' from
  964. X--      source files.  Any function in the source file whose definition
  965. X--      appears like:
  966. X--
  967. X--          PUBLIC return_type
  968. X--          function( arg_list );
  969. X--          type_expr1 arg1;
  970. X--          ...
  971. X--
  972. X--      has its definition extracted and a line of the form:
  973. X--
  974. X--          return_type function ANSI((type_expr1,type_expr2,...));
  975. X--
  976. X--      entered into the output file.
  977. X--
  978. X-- AUTHOR
  979. X--      Dennis Vadura, dvadura@watdragon.uwaterloo.ca
  980. X--      CS DEPT, University of Waterloo, Waterloo, Ont., Canada
  981. X--
  982. X-- COPYRIGHT
  983. X--      Copyright (c) 1990 by Dennis Vadura.  All rights reserved.
  984. X-- 
  985. X--      This program is free software; you can redistribute it and/or
  986. X--      modify it under the terms of the GNU General Public License
  987. X--      (version 1), as published by the Free Software Foundation, and
  988. X--      found in the file 'LICENSE' included with this distribution.
  989. X-- 
  990. X--      This program is distributed in the hope that it will be useful,
  991. X--      but WITHOUT ANY WARRANTY; without even the implied warrant of
  992. X--      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  993. X--      GNU General Public License for more details.
  994. X-- 
  995. X--      You should have received a copy of the GNU General Public License
  996. X--      along with this program;  if not, write to the Free Software
  997. X--      Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  998. X--
  999. X-- LOG
  1000. X--     $Log$
  1001. X*/
  1002. XX
  1003. X#ifndef _DMAKE_PUBLIC_h
  1004. X#define _DMAKE_PUBLIC_h
  1005. XX
  1006. Xvoid Infer_recipe ANSI((CELLPTR, CELLPTR));
  1007. Xint Make_targets ANSI(());
  1008. Xint Exec_commands ANSI((CELLPTR));
  1009. Xvoid Pop_dir ANSI((int));
  1010. Xvoid Append_line ANSI((char *, int, FILE *, char *, int, int));
  1011. Xvoid Stat_target ANSI((CELLPTR, int));
  1012. Xchar * Expand ANSI((char *));
  1013. Xchar * Apply_edit ANSI((char *, char *, char *, int, int));
  1014. Xvoid Map_esc ANSI((char *));
  1015. Xchar* Apply_modifiers ANSI((int, char *));
  1016. Xchar* Tokenize ANSI((char *, char *));
  1017. Xchar * _strjoin ANSI((char *, char *, int, int));
  1018. Xchar * _stradd ANSI((char *, char *, int));
  1019. Xchar * _strapp ANSI((char *, char *));
  1020. Xchar * _strdup ANSI((char *));
  1021. Xchar * _strpbrk ANSI((char *, char *));
  1022. Xchar * _strspn ANSI((char *, char *));
  1023. Xchar * _strstr ANSI((char *, char *));
  1024. Xchar * _substr ANSI((char *, char *));
  1025. Xuint16 Hash ANSI((char *, uint32 *));
  1026. XHASHPTR Get_name ANSI((char *, HASHPTR *, int));
  1027. XHASHPTR Search_table ANSI((HASHPTR *, char *, uint16 *, uint32 *));
  1028. XHASHPTR Def_macro ANSI((char *, char *, int));
  1029. XCELLPTR Def_cell ANSI((char *));
  1030. XLINKPTR Add_prerequisite ANSI((CELLPTR, CELLPTR, int, int));
  1031. Xvoid Clear_prerequisites ANSI((CELLPTR));
  1032. Xint Test_circle ANSI((CELLPTR, int));
  1033. XSTRINGPTR Def_recipe ANSI((char *, STRINGPTR, int, int));
  1034. Xt_attr Rcp_attribute ANSI((char *));
  1035. Xint main ANSI((int, char **));
  1036. XFILE * Openfile ANSI((char *, int, int));
  1037. XFILE * Closefile ANSI(());
  1038. XFILE * Search_file ANSI((char *, char **));
  1039. Xchar * Filename ANSI(());
  1040. Xvoid No_ram ANSI(());
  1041. SHAR_EOF
  1042. true || echo 'restore of dm37p2 failed'
  1043. fi
  1044. echo 'End of  part 7'
  1045. echo 'File dm37p2 is continued in part 8'
  1046. echo 8 > _shar_seq_.tmp
  1047. exit 0
  1048.  
  1049. exit 0 # Just in case...
  1050. -- 
  1051. Kent Landfield                   INTERNET: kent@sparky.IMD.Sterling.COM
  1052. Sterling Software, IMD           UUCP:     uunet!sparky!kent
  1053. Phone:    (402) 291-8300         FAX:      (402) 291-4362
  1054. Please send comp.sources.misc-related mail to kent@uunet.uu.net.
  1055.