home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / misc / volume19 / dmake / part21 < prev    next >
Encoding:
Text File  |  1991-05-11  |  40.2 KB  |  1,267 lines

  1. Newsgroups: comp.sources.misc
  2. From: Dennis Vadura <dvadura@watdragon.waterloo.edu>
  3. Subject:  v19i042:  dmake - dmake version 3.7, Part21/37
  4. Message-ID: <1991May12.002132.9551@sparky.IMD.Sterling.COM>
  5. X-Md4-Signature: 3f263a94cf6661e13196ae61dd731582
  6. Date: Sun, 12 May 1991 00:21:32 GMT
  7. Approved: kent@sparky.imd.sterling.com
  8.  
  9. Submitted-by: Dennis Vadura <dvadura@watdragon.waterloo.edu>
  10. Posting-number: Volume 19, Issue 42
  11. Archive-name: dmake/part21
  12. Supersedes: dmake-3.6: Volume 15, Issue 52-77
  13.  
  14. ---- Cut Here and feed the following to sh ----
  15. #!/bin/sh
  16. # this is dmake.shar.21 (part 21 of a multipart archive)
  17. # do not concatenate these parts, unpack them in order with /bin/sh
  18. # file dmake/man/dmake.tf continued
  19. #
  20. if test ! -r _shar_seq_.tmp; then
  21.     echo 'Please unpack part 1 first!'
  22.     exit 1
  23. fi
  24. (read Scheck
  25.  if test "$Scheck" != 21; then
  26.     echo Please unpack part "$Scheck" next!
  27.     exit 1
  28.  else
  29.     exit 0
  30.  fi
  31. ) < _shar_seq_.tmp || exit 1
  32. if test -f _shar_wnt_.tmp; then
  33. sed 's/^X//' << 'SHAR_EOF' >> 'dmake/man/dmake.tf' &&
  34. as expected if AUGMAKE special target handling is enabled.  For example:
  35. .sp
  36. .nf
  37. \tFRC:
  38. \tmyprog.o : myprog.c $(FRC) ; ...
  39. .fi
  40. .sp
  41. Works as expected if you issue the command
  42. .sp
  43. \t'\fBdmake\fP -A FRC=FRC'
  44. .sp
  45. but fails with a 'don't know how to make FRC'
  46. error message if you do not specify AUGMAKE special target handling via
  47. the -A flag (or by setting AUGMAKE:=yes internally).
  48. .RE
  49. .SH "LIMITS"
  50. In some environments the length of an argument string is restricted.
  51. (e.g. MSDOS command line arguments cannot be longer than 128 bytes if you are
  52. using the standard command.com command interpreter as your shell,
  53. .B dmake
  54. text diversions may help in these situations.)
  55. .SH "PORTABILITY"
  56. To write makefiles that can be moved from one environment to another requires
  57. some forethought.  In particular you must define as macros all those things
  58. that may be different in the new environment.
  59. .B dmake
  60. has two facilities that help to support writing portable makefiles, recursive
  61. macros and conditional expressions.  The recursive macros, allow one to define
  62. environment configurations that allow different environments for similar types
  63. of operating systems.  For example the same make script can be used for SYSV and
  64. BSD but with different macro definitions.
  65. .PP
  66. To write a makefile that is portable between UNIX and MSDOS requires both
  67. features since in almost all cases you will need to define new recipes for
  68. making targets.  The recipes will probably be quite different since the
  69. capabilities of the tools on each machine are different.  Different
  70. macros will be needed to help handle the smaller differences in the two
  71. environments.
  72. .PP
  73. NOTE:  Unlike UNIX, MSDOS \fBdoes\fP maintain cd requests
  74. cross single recipe lines.
  75. This is not portable, and your makefiles will not work the same way if you
  76. depend on it.  Use the .IF ... .ELSE ... .END conditionals to supply different
  77. make scripts as necessary.
  78. .SH FILES
  79. Makefile, makefile, startup.mk (use dmake -V to tell you where the startup
  80. file is)
  81. .SH "SEE ALSO"
  82. sh(1), csh(1), touch(1), f77(1), pc(1), cc(1)
  83. .br
  84. S.I. Feldman  \fIMake - A Program for Maintaining Computer Programs\fP
  85. .SH "AUTHOR"
  86. Dennis Vadura, CS Dept. University of Waterloo. dvadura@watdragon.uwaterloo.ca
  87. .br
  88. Many thanks to Carl Seger for his helpful suggestions,
  89. and to Trevor John Thompson for his many excellent ideas and
  90. informative bug reports.
  91. .SH BUGS
  92. Some system commands return non-zero status inappropriately.
  93. Use
  94. .B \-i
  95. (`\-' within the makefile) to overcome the difficulty.
  96. .PP
  97. Some systems do not have easily accessible
  98. time stamps for library members (MSDOS, AMIGA, etc)
  99. for these \fBdmake\fR uses the time stamp of the library instead and prints
  100. a warning the first time it does so.  This is almost always ok, except when
  101. multiple makefiles update a single library file.  In these instances it is
  102. possible to miss an update if one is not careful.
  103. .PP
  104. This man page is way too long.
  105. SHAR_EOF
  106. chmod 0640 dmake/man/dmake.tf ||
  107. echo 'restore of dmake/man/dmake.tf failed'
  108. Wc_c="`wc -c < 'dmake/man/dmake.tf'`"
  109. test 97989 -eq "$Wc_c" ||
  110.     echo 'dmake/man/dmake.tf: original size 97989, current size' "$Wc_c"
  111. rm -f _shar_wnt_.tmp
  112. fi
  113. # ============= dmake/msdos/_chdir.c ==============
  114. if test ! -d 'dmake/msdos'; then
  115.     mkdir 'dmake/msdos'
  116. fi
  117. if test -f 'dmake/msdos/_chdir.c' -a X"$1" != X"-c"; then
  118.     echo 'x - skipping dmake/msdos/_chdir.c (File already exists)'
  119.     rm -f _shar_wnt_.tmp
  120. else
  121. > _shar_wnt_.tmp
  122. sed 's/^X//' << 'SHAR_EOF' > 'dmake/msdos/_chdir.c' &&
  123. /* RCS      -- $Header: /u2/dvadura/src/generic/dmake/src/msdos/RCS/_chdir.c,v 1.1 91/05/06 15:25:28 dvadura Exp $
  124. -- SYNOPSIS -- Change directory.
  125. -- 
  126. -- DESCRIPTION
  127. --    Under DOS change the current drive as well as the current directory.
  128. --
  129. -- AUTHOR
  130. --      Dennis Vadura, dvadura@watdragon.uwaterloo.ca
  131. --      CS DEPT, University of Waterloo, Waterloo, Ont., Canada
  132. --
  133. -- COPYRIGHT
  134. --      Copyright (c) 1990 by Dennis Vadura.  All rights reserved.
  135. -- 
  136. --      This program is free software; you can redistribute it and/or
  137. --      modify it under the terms of the GNU General Public License
  138. --      (version 1), as published by the Free Software Foundation, and
  139. --      found in the file 'LICENSE' included with this distribution.
  140. -- 
  141. --      This program is distributed in the hope that it will be useful,
  142. --      but WITHOUT ANY WARRANTY; without even the implied warrant of
  143. --      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  144. --      GNU General Public License for more details.
  145. -- 
  146. --      You should have received a copy of the GNU General Public License
  147. --      along with this program;  if not, write to the Free Software
  148. --      Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  149. --
  150. -- LOG
  151. --     $Log:    _chdir.c,v $
  152. X * Revision 1.1  91/05/06  15:25:28  dvadura
  153. X * dmake Release Version 3.7
  154. X * 
  155. */
  156. X
  157. #include <dos.h>
  158. #include "extern.h"
  159. X
  160. PUBLIC int
  161. _chdir(path)
  162. char *path;
  163. {
  164. X   int   res;
  165. X
  166. X   res = chdir(path);
  167. X
  168. #if defined(OS2)
  169. X   if (res != -1 && path[1] == ':' && *path != *Pwd) {
  170. X      unsigned new_drive;
  171. X      unsigned max_drives;
  172. X
  173. X      /* for OS2 we must change drive without using intdos() */
  174. X      new_drive = (*path & ~0x20) - 'A' + 1;
  175. X      _dos_setdrive(new_drive, &max_drives);
  176. X   }
  177. #else
  178. X   if (res != -1 && path[1] == ':' && *path != *Pwd) {
  179. X      union REGS  reg;
  180. X
  181. X      /* we must change the logged drive, since the chdir worked. */
  182. X      reg.h.ah = 0x0E;
  183. X      reg.h.dl = (*path & ~0x20) - 'A';
  184. X      intdos(®, ®);
  185. X   }
  186. #endif /* OS2 */
  187. X   return (res);
  188. }
  189. X
  190. SHAR_EOF
  191. chmod 0640 dmake/msdos/_chdir.c ||
  192. echo 'restore of dmake/msdos/_chdir.c failed'
  193. Wc_c="`wc -c < 'dmake/msdos/_chdir.c'`"
  194. test 2019 -eq "$Wc_c" ||
  195.     echo 'dmake/msdos/_chdir.c: original size 2019, current size' "$Wc_c"
  196. rm -f _shar_wnt_.tmp
  197. fi
  198. # ============= dmake/msdos/arlib.c ==============
  199. if test -f 'dmake/msdos/arlib.c' -a X"$1" != X"-c"; then
  200.     echo 'x - skipping dmake/msdos/arlib.c (File already exists)'
  201.     rm -f _shar_wnt_.tmp
  202. else
  203. > _shar_wnt_.tmp
  204. sed 's/^X//' << 'SHAR_EOF' > 'dmake/msdos/arlib.c' &&
  205. /* RCS      -- $Header: /u2/dvadura/src/generic/dmake/src/msdos/RCS/arlib.c,v 1.1 91/05/06 15:25:29 dvadura Exp $
  206. -- SYNOPSIS -- Library access code.
  207. -- 
  208. -- DESCRIPTION
  209. --    This implementation uses the library timestamp inplace of the
  210. --    library member timestamp.
  211. --
  212. -- AUTHOR
  213. --      Dennis Vadura, dvadura@watdragon.uwaterloo.ca
  214. --      CS DEPT, University of Waterloo, Waterloo, Ont., Canada
  215. --
  216. -- COPYRIGHT
  217. --      Copyright (c) 1990 by Dennis Vadura.  All rights reserved.
  218. -- 
  219. --      This program is free software; you can redistribute it and/or
  220. --      modify it under the terms of the GNU General Public License
  221. --      (version 1), as published by the Free Software Foundation, and
  222. --      found in the file 'LICENSE' included with this distribution.
  223. -- 
  224. --      This program is distributed in the hope that it will be useful,
  225. --      but WITHOUT ANY WARRANTY; without even the implied warrant of
  226. --      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  227. --      GNU General Public License for more details.
  228. -- 
  229. --      You should have received a copy of the GNU General Public License
  230. --      along with this program;  if not, write to the Free Software
  231. --      Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  232. --
  233. -- LOG
  234. --     $Log:    arlib.c,v $
  235. X * Revision 1.1  91/05/06  15:25:29  dvadura
  236. X * dmake Release Version 3.7
  237. X * 
  238. */
  239. X
  240. #include "extern.h"
  241. X
  242. PUBLIC time_t
  243. seek_arch(name, lib)
  244. char*    name;
  245. char*    lib;
  246. {
  247. X   static    int    warned = FALSE;
  248. X
  249. X   if (!warned && !(Glob_attr&A_SILENT))
  250. X       warned = TRUE,
  251. X       Warning("Can't extract library member timestamp;\n\
  252. X       using library timestamp instead.");
  253. X   return (Do_stat(lib, NULL, NULL));
  254. }
  255. X
  256. PUBLIC int
  257. touch_arch(name, lib)
  258. char*    name;
  259. char*    lib;
  260. {
  261. X   static    int    warned = FALSE;
  262. X
  263. X   if (!warned && !(Glob_attr&A_SILENT))
  264. X       warned = TRUE,
  265. X       Warning("Can't update library member timestamp;\n\
  266. X       touching library instead.");
  267. X   return (Do_touch(lib, NULL, NULL));
  268. }
  269. X
  270. SHAR_EOF
  271. chmod 0640 dmake/msdos/arlib.c ||
  272. echo 'restore of dmake/msdos/arlib.c failed'
  273. Wc_c="`wc -c < 'dmake/msdos/arlib.c'`"
  274. test 1946 -eq "$Wc_c" ||
  275.     echo 'dmake/msdos/arlib.c: original size 1946, current size' "$Wc_c"
  276. rm -f _shar_wnt_.tmp
  277. fi
  278. # ============= dmake/msdos/bccdos/config.h ==============
  279. if test ! -d 'dmake/msdos/bccdos'; then
  280.     mkdir 'dmake/msdos/bccdos'
  281. fi
  282. if test -f 'dmake/msdos/bccdos/config.h' -a X"$1" != X"-c"; then
  283.     echo 'x - skipping dmake/msdos/bccdos/config.h (File already exists)'
  284.     rm -f _shar_wnt_.tmp
  285. else
  286. > _shar_wnt_.tmp
  287. sed 's/^X//' << 'SHAR_EOF' > 'dmake/msdos/bccdos/config.h' &&
  288. /* RCS      -- $Header: /u2/dvadura/src/generic/dmake/src/msdos/bccdos/RCS/config.h,v 1.1 91/05/06 15:26:22 dvadura Exp $
  289. -- SYNOPSIS -- Configurarion include file.
  290. -- 
  291. -- DESCRIPTION
  292. --     There is one of these for each specific machine configuration.
  293. --    It can be used to further tweek the machine specific sources
  294. --    so that they compile.
  295. --
  296. -- AUTHOR
  297. --      Dennis Vadura, dvadura@watdragon.uwaterloo.ca
  298. --      CS DEPT, University of Waterloo, Waterloo, Ont., Canada
  299. --
  300. -- COPYRIGHT
  301. --      Copyright (c) 1990 by Dennis Vadura.  All rights reserved.
  302. -- 
  303. --      This program is free software; you can redistribute it and/or
  304. --      modify it under the terms of the GNU General Public License
  305. --      (version 1), as published by the Free Software Foundation, and
  306. --      found in the file 'LICENSE' included with this distribution.
  307. -- 
  308. --      This program is distributed in the hope that it will be useful,
  309. --      but WITHOUT ANY WARRANTY; without even the implied warrant of
  310. --      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  311. --      GNU General Public License for more details.
  312. -- 
  313. --      You should have received a copy of the GNU General Public License
  314. --      along with this program;  if not, write to the Free Software
  315. --      Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  316. --
  317. -- LOG
  318. --     $Log:    config.h,v $
  319. X * Revision 1.1  91/05/06  15:26:22  dvadura
  320. X * dmake Release Version 3.7
  321. X * 
  322. */
  323. X
  324. /* define this for configurations that don't have the coreleft function
  325. X * so that the code compiles.  To my knowledge coreleft exists only on
  326. X * Turbo C, but it is needed here since the function is used in many debug
  327. X * macros. */
  328. /*#define coreleft() 0L*/
  329. extern unsigned int coreleft();
  330. X
  331. #define SIGQUIT    SIGTERM        /* turbo C doesn't understand SIGQUIT */
  332. X
  333. /* Turbo-C understands const declarations. */
  334. #define CONST const
  335. X
  336. #ifndef MSDOS
  337. #   define MSDOS 1
  338. #endif
  339. SHAR_EOF
  340. chmod 0640 dmake/msdos/bccdos/config.h ||
  341. echo 'restore of dmake/msdos/bccdos/config.h failed'
  342. Wc_c="`wc -c < 'dmake/msdos/bccdos/config.h'`"
  343. test 1901 -eq "$Wc_c" ||
  344.     echo 'dmake/msdos/bccdos/config.h: original size 1901, current size' "$Wc_c"
  345. rm -f _shar_wnt_.tmp
  346. fi
  347. # ============= dmake/msdos/bccdos/config.mk ==============
  348. if test -f 'dmake/msdos/bccdos/config.mk' -a X"$1" != X"-c"; then
  349.     echo 'x - skipping dmake/msdos/bccdos/config.mk (File already exists)'
  350.     rm -f _shar_wnt_.tmp
  351. else
  352. > _shar_wnt_.tmp
  353. sed 's/^X//' << 'SHAR_EOF' > 'dmake/msdos/bccdos/config.mk' &&
  354. # This is the Turbo C++ 2.0 DOS configuration file for DMAKE
  355. #    It simply modifies the values of SRC, and checks to see if
  356. #    OSENVIRONMENT is defined.  If so it includes the appropriate
  357. #    config.mk file.
  358. #
  359. # It also sets the values of .SOURCE.c and .SOURCE.h to include the local
  360. # directory.
  361. #
  362. osrdir := $(OS)$(DIRSEPSTR)$(OSRELEASE)
  363. X
  364. # Definition of macros for library, and C startup code.
  365. LDLIBS            = d:/cc/bcc/lib/c$(MODEL)
  366. CSTARTUP    = d:/cc/bcc/lib/c0$(MODEL).obj
  367. X
  368. # The following sources are required for TURBO C++ 2.0
  369. OSR_SRC = tempnam.c utime.c
  370. .SETDIR=$(osrdir) : $(OSR_SRC)
  371. X
  372. SRC += $(OSR_SRC)
  373. .SOURCE.h : $(osrdir)
  374. X
  375. # Local configuration modifications for CFLAGS.  Make sure your turboc.cfg
  376. # file contains a -D__STDC__=1 and -DM_I86=1, if not then uncomment the line
  377. # below!
  378. #CFLAGS += -DM_I86=1 -D__STDC__=1
  379. X
  380. # You can get a smaller executable still, buy adding a -1 to the list of
  381. # flags below, but then you can't run this on an 8086/88 cpu.
  382. #CFLAGS += -1
  383. CFLAGS  += -I$(osrdir) -d -O -N- -w-nod $(C_$(MODEL))
  384. ASFLAGS += -t -mx $(S_$(MODEL))
  385. X
  386. # Debugging information for Turbo-C
  387. DB_CFLAGS  += -v
  388. DB_LDFLAGS += /v
  389. X
  390. # See if we modify anything in the lower levels.
  391. .IF $(OSENVIRONMENT) != $(NULL)
  392. X   .INCLUDE .IGNORE : $(osrdir)$(DIRSEPSTR)$(OSENVIRONMENT)$(DIRSEPSTR)config.mk
  393. .END
  394. X
  395. C_s =
  396. C_m = -mm
  397. C_c = -mc
  398. C_l = -ml
  399. X
  400. S_s = -dmsmall
  401. S_m = -dmmedium
  402. S_c = -dmcompact
  403. S_l = -dmlarge
  404. SHAR_EOF
  405. chmod 0640 dmake/msdos/bccdos/config.mk ||
  406. echo 'restore of dmake/msdos/bccdos/config.mk failed'
  407. Wc_c="`wc -c < 'dmake/msdos/bccdos/config.mk'`"
  408. test 1400 -eq "$Wc_c" ||
  409.     echo 'dmake/msdos/bccdos/config.mk: original size 1400, current size' "$Wc_c"
  410. rm -f _shar_wnt_.tmp
  411. fi
  412. # ============= dmake/msdos/bccdos/lib.rsp ==============
  413. if test -f 'dmake/msdos/bccdos/lib.rsp' -a X"$1" != X"-c"; then
  414.     echo 'x - skipping dmake/msdos/bccdos/lib.rsp (File already exists)'
  415.     rm -f _shar_wnt_.tmp
  416. else
  417. > _shar_wnt_.tmp
  418. sed 's/^X//' << 'SHAR_EOF' > 'dmake/msdos/bccdos/lib.rsp' &&
  419. d:\cc\bcc\lib\cl
  420. SHAR_EOF
  421. chmod 0640 dmake/msdos/bccdos/lib.rsp ||
  422. echo 'restore of dmake/msdos/bccdos/lib.rsp failed'
  423. Wc_c="`wc -c < 'dmake/msdos/bccdos/lib.rsp'`"
  424. test 17 -eq "$Wc_c" ||
  425.     echo 'dmake/msdos/bccdos/lib.rsp: original size 17, current size' "$Wc_c"
  426. rm -f _shar_wnt_.tmp
  427. fi
  428. # ============= dmake/msdos/bccdos/libswp.rsp ==============
  429. if test -f 'dmake/msdos/bccdos/libswp.rsp' -a X"$1" != X"-c"; then
  430.     echo 'x - skipping dmake/msdos/bccdos/libswp.rsp (File already exists)'
  431.     rm -f _shar_wnt_.tmp
  432. else
  433. > _shar_wnt_.tmp
  434. sed 's/^X//' << 'SHAR_EOF' > 'dmake/msdos/bccdos/libswp.rsp' &&
  435. d:\cc\bcc\lib\cl
  436. SHAR_EOF
  437. chmod 0640 dmake/msdos/bccdos/libswp.rsp ||
  438. echo 'restore of dmake/msdos/bccdos/libswp.rsp failed'
  439. Wc_c="`wc -c < 'dmake/msdos/bccdos/libswp.rsp'`"
  440. test 17 -eq "$Wc_c" ||
  441.     echo 'dmake/msdos/bccdos/libswp.rsp: original size 17, current size' "$Wc_c"
  442. rm -f _shar_wnt_.tmp
  443. fi
  444. # ============= dmake/msdos/bccdos/mk.bat ==============
  445. if test -f 'dmake/msdos/bccdos/mk.bat' -a X"$1" != X"-c"; then
  446.     echo 'x - skipping dmake/msdos/bccdos/mk.bat (File already exists)'
  447.     rm -f _shar_wnt_.tmp
  448. else
  449. > _shar_wnt_.tmp
  450. sed 's/^X//' << 'SHAR_EOF' > 'dmake/msdos/bccdos/mk.bat' &&
  451. md objects
  452. tcc -c -I. -Imsdos -Imsdos\bccdos -d -O -N- -w-nod -ml  infer.c
  453. mv infer.obj objects
  454. tcc -c -I. -Imsdos -Imsdos\bccdos -d -O -N- -w-nod -ml  make.c
  455. mv make.obj objects
  456. tcc -c -I. -Imsdos -Imsdos\bccdos -d -O -N- -w-nod -ml  stat.c
  457. mv stat.obj objects
  458. tcc -c -I. -Imsdos -Imsdos\bccdos -d -O -N- -w-nod -ml  expand.c
  459. mv expand.obj objects
  460. tcc -c -I. -Imsdos -Imsdos\bccdos -d -O -N- -w-nod -ml  dmstring.c
  461. mv dmstring.obj objects
  462. tcc -c -I. -Imsdos -Imsdos\bccdos -d -O -N- -w-nod -ml  hash.c
  463. mv hash.obj objects
  464. tcc -c -I. -Imsdos -Imsdos\bccdos -d -O -N- -w-nod -ml  dag.c
  465. mv dag.obj objects
  466. tcc -c -I. -Imsdos -Imsdos\bccdos -d -O -N- -w-nod -ml  dmake.c
  467. mv dmake.obj objects
  468. tcc -c -I. -Imsdos -Imsdos\bccdos -d -O -N- -w-nod -ml  path.c
  469. mv path.obj objects
  470. tcc -c -I. -Imsdos -Imsdos\bccdos -d -O -N- -w-nod -ml  imacs.c
  471. mv imacs.obj objects
  472. tcc -c -I. -Imsdos -Imsdos\bccdos -d -O -N- -w-nod -ml  sysintf.c
  473. mv sysintf.obj objects
  474. tcc -c -I. -Imsdos -Imsdos\bccdos -d -O -N- -w-nod -ml  parse.c
  475. mv parse.obj objects
  476. tcc -c -I. -Imsdos -Imsdos\bccdos -d -O -N- -w-nod -ml  getinp.c
  477. mv getinp.obj objects
  478. tcc -c -I. -Imsdos -Imsdos\bccdos -d -O -N- -w-nod -ml  quit.c
  479. mv quit.obj objects
  480. tcc -c -I. -Imsdos -Imsdos\bccdos -d -O -N- -w-nod -ml  state.c
  481. mv state.obj objects
  482. tcc -c -I. -Imsdos -Imsdos\bccdos -d -O -N- -w-nod -ml  basename.c
  483. mv basename.obj objects
  484. tcc -c -I. -Imsdos -Imsdos\bccdos -d -O -N- -w-nod -ml  dmdump.c
  485. mv dmdump.obj objects
  486. tcc -c -I. -Imsdos -Imsdos\bccdos -d -O -N- -w-nod -ml  macparse.c
  487. mv macparse.obj objects
  488. tcc -c -I. -Imsdos -Imsdos\bccdos -d -O -N- -w-nod -ml  rulparse.c
  489. mv rulparse.obj objects
  490. tcc -c -I. -Imsdos -Imsdos\bccdos -d -O -N- -w-nod -ml  percent.c
  491. mv percent.obj objects
  492. tcc -c -I. -Imsdos -Imsdos\bccdos -d -O -N- -w-nod -ml  function.c
  493. mv function.obj objects
  494. tcc -c -I. -Imsdos -Imsdos\bccdos -d -O -N- -w-nod -ml  msdos\ruletab.c
  495. mv ruletab.obj objects
  496. tcc -c -I. -Imsdos -Imsdos\bccdos -d -O -N- -w-nod -ml  msdos\dirbrk.c
  497. mv dirbrk.obj objects
  498. tcc -c -I. -Imsdos -Imsdos\bccdos -d -O -N- -w-nod -ml  msdos\runargv.c
  499. mv runargv.obj objects
  500. tcc -c -I. -Imsdos -Imsdos\bccdos -d -O -N- -w-nod -ml  msdos\arlib.c
  501. mv arlib.obj objects
  502. tcc -c -I. -Imsdos -Imsdos\bccdos -d -O -N- -w-nod -ml  msdos\_chdir.c
  503. mv _chdir.obj objects
  504. tcc -c -I. -Imsdos -Imsdos\bccdos -d -O -N- -w-nod -ml  msdos\switchar.c
  505. mv switchar.obj objects
  506. tcc -c -I. -Imsdos -Imsdos\bccdos -d -O -N- -w-nod -ml  msdos\rmprq.c
  507. mv rmprq.obj objects
  508. tcc -c -I. -Imsdos -Imsdos\bccdos -d -O -N- -w-nod -ml  msdos\tee.c
  509. mv tee.obj objects
  510. tcc -c -I. -Imsdos -Imsdos\bccdos -d -O -N- -w-nod -ml  msdos\bccdos\tempnam.c
  511. mv tempnam.obj objects
  512. tcc -c -I. -Imsdos -Imsdos\bccdos -d -O -N- -w-nod -ml  msdos\bccdos\utime.c
  513. mv utime.obj objects
  514. tlink @\tmp\mkAAA010420,dmake.exe,NUL.MAP,@\tmp\mkBAA010420
  515. copy msdos\bccdos\startup.mk startup.mk
  516. SHAR_EOF
  517. chmod 0640 dmake/msdos/bccdos/mk.bat ||
  518. echo 'restore of dmake/msdos/bccdos/mk.bat failed'
  519. Wc_c="`wc -c < 'dmake/msdos/bccdos/mk.bat'`"
  520. test 2868 -eq "$Wc_c" ||
  521.     echo 'dmake/msdos/bccdos/mk.bat: original size 2868, current size' "$Wc_c"
  522. rm -f _shar_wnt_.tmp
  523. fi
  524. # ============= dmake/msdos/bccdos/mkswp.bat ==============
  525. if test -f 'dmake/msdos/bccdos/mkswp.bat' -a X"$1" != X"-c"; then
  526.     echo 'x - skipping dmake/msdos/bccdos/mkswp.bat (File already exists)'
  527.     rm -f _shar_wnt_.tmp
  528. else
  529. > _shar_wnt_.tmp
  530. sed 's/^X//' << 'SHAR_EOF' > 'dmake/msdos/bccdos/mkswp.bat' &&
  531. md objects
  532. tasm -t -mx -dmlarge msdos\exec.asm;
  533. mv exec.obj objects
  534. tcc -c -I. -Imsdos -Imsdos\bccdos -d -O -N- -w-nod -ml  infer.c
  535. mv infer.obj objects
  536. tcc -c -I. -Imsdos -Imsdos\bccdos -d -O -N- -w-nod -ml  make.c
  537. mv make.obj objects
  538. tcc -c -I. -Imsdos -Imsdos\bccdos -d -O -N- -w-nod -ml  stat.c
  539. mv stat.obj objects
  540. tcc -c -I. -Imsdos -Imsdos\bccdos -d -O -N- -w-nod -ml  expand.c
  541. mv expand.obj objects
  542. tcc -c -I. -Imsdos -Imsdos\bccdos -d -O -N- -w-nod -ml  dmstring.c
  543. mv dmstring.obj objects
  544. tcc -c -I. -Imsdos -Imsdos\bccdos -d -O -N- -w-nod -ml  hash.c
  545. mv hash.obj objects
  546. tcc -c -I. -Imsdos -Imsdos\bccdos -d -O -N- -w-nod -ml  dag.c
  547. mv dag.obj objects
  548. tcc -c -I. -Imsdos -Imsdos\bccdos -d -O -N- -w-nod -ml  dmake.c
  549. mv dmake.obj objects
  550. tcc -c -I. -Imsdos -Imsdos\bccdos -d -O -N- -w-nod -ml  path.c
  551. mv path.obj objects
  552. tcc -c -I. -Imsdos -Imsdos\bccdos -d -O -N- -w-nod -ml  imacs.c
  553. mv imacs.obj objects
  554. tcc -c -I. -Imsdos -Imsdos\bccdos -d -O -N- -w-nod -ml  sysintf.c
  555. mv sysintf.obj objects
  556. tcc -c -I. -Imsdos -Imsdos\bccdos -d -O -N- -w-nod -ml  parse.c
  557. mv parse.obj objects
  558. tcc -c -I. -Imsdos -Imsdos\bccdos -d -O -N- -w-nod -ml  getinp.c
  559. mv getinp.obj objects
  560. tcc -c -I. -Imsdos -Imsdos\bccdos -d -O -N- -w-nod -ml  quit.c
  561. mv quit.obj objects
  562. tcc -c -I. -Imsdos -Imsdos\bccdos -d -O -N- -w-nod -ml  state.c
  563. mv state.obj objects
  564. tcc -c -I. -Imsdos -Imsdos\bccdos -d -O -N- -w-nod -ml  basename.c
  565. mv basename.obj objects
  566. tcc -c -I. -Imsdos -Imsdos\bccdos -d -O -N- -w-nod -ml  dmdump.c
  567. mv dmdump.obj objects
  568. tcc -c -I. -Imsdos -Imsdos\bccdos -d -O -N- -w-nod -ml  macparse.c
  569. mv macparse.obj objects
  570. tcc -c -I. -Imsdos -Imsdos\bccdos -d -O -N- -w-nod -ml  rulparse.c
  571. mv rulparse.obj objects
  572. tcc -c -I. -Imsdos -Imsdos\bccdos -d -O -N- -w-nod -ml  percent.c
  573. mv percent.obj objects
  574. tcc -c -I. -Imsdos -Imsdos\bccdos -d -O -N- -w-nod -ml  function.c
  575. mv function.obj objects
  576. tcc -c -I. -Imsdos -Imsdos\bccdos -d -O -N- -w-nod -ml  msdos\ruletab.c
  577. mv ruletab.obj objects
  578. tcc -c -I. -Imsdos -Imsdos\bccdos -d -O -N- -w-nod -ml  msdos\dirbrk.c
  579. mv dirbrk.obj objects
  580. tcc -c -I. -Imsdos -Imsdos\bccdos -d -O -N- -w-nod -ml  msdos\runargv.c
  581. mv runargv.obj objects
  582. tcc -c -I. -Imsdos -Imsdos\bccdos -d -O -N- -w-nod -ml  msdos\arlib.c
  583. mv arlib.obj objects
  584. tcc -c -I. -Imsdos -Imsdos\bccdos -d -O -N- -w-nod -ml  msdos\_chdir.c
  585. mv _chdir.obj objects
  586. tcc -c -I. -Imsdos -Imsdos\bccdos -d -O -N- -w-nod -ml  msdos\switchar.c
  587. mv switchar.obj objects
  588. tcc -c -I. -Imsdos -Imsdos\bccdos -d -O -N- -w-nod -ml  msdos\rmprq.c
  589. mv rmprq.obj objects
  590. tcc -c -I. -Imsdos -Imsdos\bccdos -d -O -N- -w-nod -ml  msdos\find.c
  591. mv find.obj objects
  592. tcc -c -I. -Imsdos -Imsdos\bccdos -d -O -N- -w-nod -ml  msdos\spawn.c
  593. mv spawn.obj objects
  594. tcc -c -I. -Imsdos -Imsdos\bccdos -d -O -N- -w-nod -ml  msdos\bccdos\tempnam.c
  595. mv tempnam.obj objects
  596. tcc -c -I. -Imsdos -Imsdos\bccdos -d -O -N- -w-nod -ml  msdos\bccdos\utime.c
  597. mv utime.obj objects
  598. tlink @\tmp\mkAAA010450,dmake.exe,NUL.MAP,@\tmp\mkBAA010450
  599. copy msdos\bccdos\startup.mk startup.mk
  600. SHAR_EOF
  601. chmod 0640 dmake/msdos/bccdos/mkswp.bat ||
  602. echo 'restore of dmake/msdos/bccdos/mkswp.bat failed'
  603. Wc_c="`wc -c < 'dmake/msdos/bccdos/mkswp.bat'`"
  604. test 3018 -eq "$Wc_c" ||
  605.     echo 'dmake/msdos/bccdos/mkswp.bat: original size 3018, current size' "$Wc_c"
  606. rm -f _shar_wnt_.tmp
  607. fi
  608. # ============= dmake/msdos/bccdos/obj.rsp ==============
  609. if test -f 'dmake/msdos/bccdos/obj.rsp' -a X"$1" != X"-c"; then
  610.     echo 'x - skipping dmake/msdos/bccdos/obj.rsp (File already exists)'
  611.     rm -f _shar_wnt_.tmp
  612. else
  613. > _shar_wnt_.tmp
  614. sed 's/^X//' << 'SHAR_EOF' > 'dmake/msdos/bccdos/obj.rsp' &&
  615. d:\cc\bcc\lib\c0l.obj+
  616. objects\infer.obj+
  617. objects\make.obj+
  618. objects\stat.obj+
  619. objects\expand.obj+
  620. objects\dmstring.obj+
  621. objects\hash.obj+
  622. objects\dag.obj+
  623. objects\dmake.obj+
  624. objects\path.obj+
  625. objects\imacs.obj+
  626. objects\sysintf.obj+
  627. objects\parse.obj+
  628. objects\getinp.obj+
  629. objects\quit.obj+
  630. objects\state.obj+
  631. objects\basename.obj+
  632. objects\dmdump.obj+
  633. objects\macparse.obj+
  634. objects\rulparse.obj+
  635. objects\percent.obj+
  636. objects\function.obj+
  637. objects\ruletab.obj+
  638. objects\dirbrk.obj+
  639. objects\runargv.obj+
  640. objects\arlib.obj+
  641. objects\_chdir.obj+
  642. objects\switchar.obj+
  643. objects\rmprq.obj+
  644. objects\tee.obj+
  645. objects\tempnam.obj+
  646. objects\utime.obj
  647. SHAR_EOF
  648. chmod 0640 dmake/msdos/bccdos/obj.rsp ||
  649. echo 'restore of dmake/msdos/bccdos/obj.rsp failed'
  650. Wc_c="`wc -c < 'dmake/msdos/bccdos/obj.rsp'`"
  651. test 635 -eq "$Wc_c" ||
  652.     echo 'dmake/msdos/bccdos/obj.rsp: original size 635, current size' "$Wc_c"
  653. rm -f _shar_wnt_.tmp
  654. fi
  655. # ============= dmake/msdos/bccdos/objswp.rsp ==============
  656. if test -f 'dmake/msdos/bccdos/objswp.rsp' -a X"$1" != X"-c"; then
  657.     echo 'x - skipping dmake/msdos/bccdos/objswp.rsp (File already exists)'
  658.     rm -f _shar_wnt_.tmp
  659. else
  660. > _shar_wnt_.tmp
  661. sed 's/^X//' << 'SHAR_EOF' > 'dmake/msdos/bccdos/objswp.rsp' &&
  662. d:\cc\bcc\lib\c0l.obj+
  663. objects\exec.obj+
  664. objects\infer.obj+
  665. objects\make.obj+
  666. objects\stat.obj+
  667. objects\expand.obj+
  668. objects\dmstring.obj+
  669. objects\hash.obj+
  670. objects\dag.obj+
  671. objects\dmake.obj+
  672. objects\path.obj+
  673. objects\imacs.obj+
  674. objects\sysintf.obj+
  675. objects\parse.obj+
  676. objects\getinp.obj+
  677. objects\quit.obj+
  678. objects\state.obj+
  679. objects\basename.obj+
  680. objects\dmdump.obj+
  681. objects\macparse.obj+
  682. objects\rulparse.obj+
  683. objects\percent.obj+
  684. objects\function.obj+
  685. objects\ruletab.obj+
  686. objects\dirbrk.obj+
  687. objects\runargv.obj+
  688. objects\arlib.obj+
  689. objects\_chdir.obj+
  690. objects\switchar.obj+
  691. objects\rmprq.obj+
  692. objects\find.obj+
  693. objects\spawn.obj+
  694. objects\tempnam.obj+
  695. objects\utime.obj
  696. SHAR_EOF
  697. chmod 0640 dmake/msdos/bccdos/objswp.rsp ||
  698. echo 'restore of dmake/msdos/bccdos/objswp.rsp failed'
  699. Wc_c="`wc -c < 'dmake/msdos/bccdos/objswp.rsp'`"
  700. test 673 -eq "$Wc_c" ||
  701.     echo 'dmake/msdos/bccdos/objswp.rsp: original size 673, current size' "$Wc_c"
  702. rm -f _shar_wnt_.tmp
  703. fi
  704. # ============= dmake/msdos/bccdos/public.h ==============
  705. if test -f 'dmake/msdos/bccdos/public.h' -a X"$1" != X"-c"; then
  706.     echo 'x - skipping dmake/msdos/bccdos/public.h (File already exists)'
  707.     rm -f _shar_wnt_.tmp
  708. else
  709. > _shar_wnt_.tmp
  710. sed 's/^X//' << 'SHAR_EOF' > 'dmake/msdos/bccdos/public.h' &&
  711. /* RCS      -- $Header: /u2/dvadura/src/generic/dmake/src/msdos/bccdos/RCS/public.h,v 1.1 91/05/06 15:26:27 dvadura Exp Locker: dvadura $
  712. -- WARNING  -- This file is AUTOMATICALLY GENERATED DO NOT EDIT IT
  713. --
  714. -- SYNOPSIS -- Local functions exported to be visible by others.
  715. --
  716. -- DESCRIPTION
  717. --      This file is generated by 'genpub'.  Function declarations
  718. --      that appear in this file are extracted by 'genpub' from
  719. --      source files.  Any function in the source file whose definition
  720. --      appears like:
  721. --
  722. --          PUBLIC return_type
  723. --          function( arg_list );
  724. --          type_expr1 arg1;
  725. --          ...
  726. --
  727. --      has its definition extracted and a line of the form:
  728. --
  729. --          return_type function ANSI((type_expr1,type_expr2,...));
  730. --
  731. --      entered into the output file.
  732. --
  733. -- AUTHOR
  734. --      Dennis Vadura, dvadura@watdragon.uwaterloo.ca
  735. --      CS DEPT, University of Waterloo, Waterloo, Ont., Canada
  736. --
  737. -- COPYRIGHT
  738. --      Copyright (c) 1990 by Dennis Vadura.  All rights reserved.
  739. -- 
  740. --      This program is free software; you can redistribute it and/or
  741. --      modify it under the terms of the GNU General Public License
  742. --      (version 1), as published by the Free Software Foundation, and
  743. --      found in the file 'LICENSE' included with this distribution.
  744. -- 
  745. --      This program is distributed in the hope that it will be useful,
  746. --      but WITHOUT ANY WARRANTY; without even the implied warrant of
  747. --      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  748. --      GNU General Public License for more details.
  749. -- 
  750. --      You should have received a copy of the GNU General Public License
  751. --      along with this program;  if not, write to the Free Software
  752. --      Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  753. --
  754. -- LOG
  755. --     $Log:    public.h,v $
  756. X * Revision 1.1  91/05/06  15:26:27  dvadura
  757. X * dmake Release Version 3.7
  758. X * 
  759. */
  760. X
  761. #ifndef _DMAKE_PUBLIC_h
  762. #define _DMAKE_PUBLIC_h
  763. X
  764. void Infer_recipe ANSI((CELLPTR, CELLPTR));
  765. int Make_targets ANSI(());
  766. int Exec_commands ANSI((CELLPTR));
  767. void Pop_dir ANSI((int));
  768. void Append_line ANSI((char *, int, FILE *, char *, int, int));
  769. void Stat_target ANSI((CELLPTR, int));
  770. char * Expand ANSI((char *));
  771. char * Apply_edit ANSI((char *, char *, char *, int, int));
  772. void Map_esc ANSI((char *));
  773. char* Apply_modifiers ANSI((int, char *));
  774. char* Tokenize ANSI((char *, char *));
  775. char * _strjoin ANSI((char *, char *, int, int));
  776. char * _stradd ANSI((char *, char *, int));
  777. char * _strapp ANSI((char *, char *));
  778. char * _strdup ANSI((char *));
  779. char * _strpbrk ANSI((char *, char *));
  780. char * _strspn ANSI((char *, char *));
  781. char * _strstr ANSI((char *, char *));
  782. char * _substr ANSI((char *, char *));
  783. uint16 Hash ANSI((char *, uint32 *));
  784. HASHPTR Get_name ANSI((char *, HASHPTR *, int));
  785. HASHPTR Search_table ANSI((HASHPTR *, char *, uint16 *, uint32 *));
  786. HASHPTR Def_macro ANSI((char *, char *, int));
  787. CELLPTR Def_cell ANSI((char *));
  788. LINKPTR Add_prerequisite ANSI((CELLPTR, CELLPTR, int, int));
  789. void Clear_prerequisites ANSI((CELLPTR));
  790. int Test_circle ANSI((CELLPTR, int));
  791. STRINGPTR Def_recipe ANSI((char *, STRINGPTR, int, int));
  792. t_attr Rcp_attribute ANSI((char *));
  793. int main ANSI((int, char **));
  794. FILE * Openfile ANSI((char *, int, int));
  795. FILE * Closefile ANSI(());
  796. FILE * Search_file ANSI((char *, char **));
  797. char * Filename ANSI(());
  798. void No_ram ANSI(());
  799. int Usage ANSI((int));
  800. int Version ANSI(());
  801. char * Get_suffix ANSI((char *));
  802. char * Build_path ANSI((char *, char *));
  803. void Make_rules ANSI(());
  804. void Create_macro_vars ANSI(());
  805. time_t Do_stat ANSI((char *, char *, char **));
  806. int Do_touch ANSI((char *, char *, char **));
  807. void Void_lib_cache ANSI((char *, char *));
  808. time_t Do_time ANSI(());
  809. int Do_cmnd ANSI((char *, int, int, CELLPTR, int, int, int));
  810. char ** Pack_argv ANSI((int, int, char *));
  811. char * Read_env_string ANSI((char *));
  812. int Write_env_string ANSI((char *, char *));
  813. void ReadEnvironment ANSI(());
  814. void Catch_signals ANSI((void (*)()));
  815. void Clear_signals ANSI(());
  816. void Prolog ANSI((int, char* []));
  817. void Epilog ANSI((int));
  818. char * Get_current_dir ANSI(());
  819. int Set_dir ANSI((char*));
  820. char Get_switch_char ANSI(());
  821. FILE* Get_temp ANSI((char **, char *, int));
  822. FILE * Start_temp ANSI((char *, CELLPTR, char **));
  823. void Open_temp_error ANSI((char *, char *));
  824. void Link_temp ANSI((CELLPTR, FILE *, char *));
  825. void Close_temp ANSI((CELLPTR, FILE *));
  826. void Unlink_temp_files ANSI((CELLPTR));
  827. void Handle_result ANSI((int, int, int, CELLPTR));
  828. void Update_time_stamp ANSI((CELLPTR));
  829. void Parse ANSI((FILE *));
  830. int Get_line ANSI((char *, FILE *));
  831. char * Do_comment ANSI((char *, char **, int));
  832. char * Get_token ANSI((TKSTRPTR, char *, int));
  833. void Quit ANSI(());
  834. void Read_state ANSI(());
  835. void Write_state ANSI(());
  836. int Check_state ANSI((CELLPTR, STRINGPTR *, int));
  837. char* basename ANSI((char *));
  838. void Dump ANSI(());
  839. void Dump_recipe ANSI((STRINGPTR));
  840. int Parse_macro ANSI((char *, int));
  841. int Macro_op ANSI((char *));
  842. int Parse_rule_def ANSI((int *));
  843. int Rule_op ANSI((char *));
  844. void Add_recipe_to_list ANSI((char *, int, int));
  845. void Bind_rules_to_targets ANSI((int));
  846. int Set_group_attributes ANSI((char *));
  847. DFALINKPTR Match_dfa ANSI((char *));
  848. void Check_circle_dfa ANSI(());
  849. void Add_nfa ANSI((char *));
  850. char * Exec_function ANSI((char *));
  851. int If_root_path ANSI((char *));
  852. int runargv ANSI((CELLPTR, int, int, int, int, char *));
  853. void Clean_up_processes ANSI(());
  854. int Wait_for_child ANSI((int, int));
  855. time_t seek_arch ANSI((char*, char*));
  856. int touch_arch ANSI((char*, char*));
  857. int _chdir ANSI((char *));
  858. void Remove_prq ANSI((CELLPTR));
  859. void Hook_std_writes ANSI((char *));
  860. X
  861. #endif
  862. SHAR_EOF
  863. chmod 0640 dmake/msdos/bccdos/public.h ||
  864. echo 'restore of dmake/msdos/bccdos/public.h failed'
  865. Wc_c="`wc -c < 'dmake/msdos/bccdos/public.h'`"
  866. test 5622 -eq "$Wc_c" ||
  867.     echo 'dmake/msdos/bccdos/public.h: original size 5622, current size' "$Wc_c"
  868. rm -f _shar_wnt_.tmp
  869. fi
  870. # ============= dmake/msdos/bccdos/startup.mk ==============
  871. if test -f 'dmake/msdos/bccdos/startup.mk' -a X"$1" != X"-c"; then
  872.     echo 'x - skipping dmake/msdos/bccdos/startup.mk (File already exists)'
  873.     rm -f _shar_wnt_.tmp
  874. else
  875. > _shar_wnt_.tmp
  876. sed 's/^X//' << 'SHAR_EOF' > 'dmake/msdos/bccdos/startup.mk' &&
  877. # MSDOS DMAKE startup file.  Customize to suit your needs.
  878. # Assumes MKS toolkit for the tool commands, and Turbo-C.  Change as req'd.
  879. # See the documentation for a description of internally defined macros.
  880. #
  881. # Disable warnings for macros redefined here that were given
  882. # on the command line.
  883. __.SILENT := $(.SILENT)
  884. .SILENT   := yes
  885. X
  886. # Configuration parameters for DMAKE startup.mk file
  887. # Set these to NON-NULL if you wish to turn the parameter on.
  888. _HAVE_RCS    := yes        # yes => RCS  is installed.
  889. _HAVE_SCCS    :=         # yes => SCCS is installed.
  890. X
  891. # Applicable suffix definitions
  892. A := .lib    # Libraries
  893. E := .exe    # Executables
  894. F := .for    # Fortran
  895. O := .obj    # Objects
  896. P := .pas    # Pascal
  897. S := .asm    # Assembler sources
  898. V :=         # RCS suffix
  899. X
  900. # See if these are defined
  901. TMPDIR := $(ROOTDIR)/tmp
  902. .IMPORT .IGNORE : TMPDIR SHELL COMSPEC
  903. X
  904. # Recipe execution configurations
  905. # First set SHELL, If it is not defined, use COMSPEC, otherwise
  906. # it is assumed to be MKS Korn SHELL.
  907. .IF $(SHELL) == $(NULL)
  908. .IF $(COMSPEC) == $(NULL)
  909. X   SHELL := $(ROOTDIR)/bin/sh$E
  910. .ELSE
  911. X   SHELL := $(COMSPEC)
  912. .END
  913. .END
  914. GROUPSHELL := $(SHELL)
  915. X
  916. # Now set remaining arguments depending on which SHELL we
  917. # are going to use.  COMSPEC (assumed to be command.com) or
  918. # MKS Korn Shell.
  919. .IF $(SHELL)==$(COMSPEC)
  920. X   SHELLFLAGS  := $(SWITCHAR)c
  921. X   GROUPFLAGS  := $(SHELLFLAGS)
  922. X   SHELLMETAS  := *"?<>
  923. X   GROUPSUFFIX := .bat
  924. X   DIRSEPSTR   := \\
  925. X   DIVFILE      = $(TMPFILE:s,/,\)
  926. .ELSE
  927. X   SHELLFLAGS  := -c
  928. X   GROUPFLAGS  := 
  929. X   SHELLMETAS  := *"?<>|()&][$$\#`'
  930. X   GROUPSUFFIX := .ksh
  931. X   .MKSARGS    := yes
  932. X   DIVFILE      = $(TMPFILE:s,/,${DIVSEP_shell_${USESHELL}})
  933. X   DIVSEP_shell_yes := \\\
  934. X   DIVSEP_shell_no  := \\
  935. .END
  936. X
  937. # Standard C-language command names and flags
  938. X   CC      := tcc        # C-compiler and flags
  939. X   CFLAGS  +=
  940. X
  941. X   AS      := tasm        # Assembler and flags
  942. X   ASFLAGS += 
  943. X
  944. X   LD       = tlink        # Loader and flags
  945. X   LDFLAGS +=
  946. X   LDLIBS   =
  947. X
  948. # Definition of $(MAKE) macro for recursive makes.
  949. X   MAKE = $(MAKECMD) $(MFLAGS)
  950. X
  951. # Language and Parser generation Tools and their flags
  952. X   YACC      := yacc        # standard yacc
  953. X   YFLAGS +=
  954. X   YTAB      := ytab        # yacc output files name stem.
  955. X
  956. X   LEX      := lex        # standard lex
  957. X   LFLAGS +=
  958. X   LEXYY  := lex_yy        # lex output file
  959. X
  960. # Other Compilers, Tools and their flags
  961. X   PC    := tpc            # pascal compiler
  962. X   RC    := anyf77        # ratfor compiler
  963. X   FC    := anyf77        # fortran compiler
  964. X
  965. X   CO       := co        # check out for RCS
  966. X   COFLAGS += -q
  967. X
  968. X   AR     := ar            # archiver
  969. X   ARFLAGS+= ruv
  970. X
  971. X   RM       := rm        # remove a file command
  972. X   RMFLAGS +=
  973. X
  974. # Implicit generation rules for making inferences.
  975. # We don't provide .yr or .ye rules here.  They're obsolete.
  976. # Rules for making *$O
  977. X   %$O : %.c ; $(CC) $(CFLAGS) -c $<
  978. X   %$O : %$P ; $(PC) $(PFLAGS) -c $<
  979. X   %$O : %$S ; $(AS) $(ASFLAGS) $(<:s,/,\);
  980. X   %$O : %.cl ; class -c $<
  981. X   %$O : %.e %.r %.F %$F ; $(FC) $(RFLAGS) $(EFLAGS) $(FFLAGS) -c $<
  982. X
  983. # Executables
  984. X   %$E : %$O ; $(CC) $(LDFLAGS) -o$@ $< $(LDLIBS)
  985. X
  986. # lex and yacc rules
  987. X   %.c : %.y ; $(YACC)  $(YFLAGS) $<; mv $(YTAB).c $@
  988. X   %.c : %.l ; $(LEX)   $(LFLAGS) $<; mv $(LEXYY).c $@
  989. X
  990. # RCS support
  991. .IF $(_HAVE_RCS)
  992. X   % : $$(@:d)RCS/$$(@:f)$V;- $(CO) $(COFLAGS) $@
  993. X   .NOINFER : $$(@:d)RCS/$$(@:f)$V
  994. .END
  995. X
  996. # SCCS support
  997. .IF $(_HAVE_SCCS)
  998. X   % : s.% ; get $@
  999. X   .NOINFER : s.%
  1000. .END
  1001. X
  1002. # Recipe to make archive files.
  1003. %$A :
  1004. [
  1005. X   $(AR) $(ARFLAGS) $@ $?
  1006. X   $(RM) $(RMFLAGS) $?
  1007. ]
  1008. X
  1009. # DMAKE uses this recipe to remove intermediate targets
  1010. .REMOVE :; $(RM) -f $<
  1011. X
  1012. # AUGMAKE extensions for SYSV compatibility
  1013. @B = $(@:b)
  1014. @D = $(@:d)
  1015. @F = $(@:f)
  1016. *B = $(*:b)
  1017. *D = $(*:d)
  1018. *F = $(*:f)
  1019. <B = $(<:b)
  1020. <D = $(<:d)
  1021. <F = $(<:f)
  1022. ?B = $(?:b)
  1023. ?F = $(?:f)
  1024. ?D = $(?:d)
  1025. X
  1026. # Turn warnings back to previous setting.
  1027. .SILENT := $(__.SILENT)
  1028. X
  1029. # Local init file if any, gets parsed before user makefile
  1030. .INCLUDE .IGNORE: "_startup.mk"
  1031. SHAR_EOF
  1032. chmod 0640 dmake/msdos/bccdos/startup.mk ||
  1033. echo 'restore of dmake/msdos/bccdos/startup.mk failed'
  1034. Wc_c="`wc -c < 'dmake/msdos/bccdos/startup.mk'`"
  1035. test 3795 -eq "$Wc_c" ||
  1036.     echo 'dmake/msdos/bccdos/startup.mk: original size 3795, current size' "$Wc_c"
  1037. rm -f _shar_wnt_.tmp
  1038. fi
  1039. # ============= dmake/msdos/bccdos/tempnam.c ==============
  1040. if test -f 'dmake/msdos/bccdos/tempnam.c' -a X"$1" != X"-c"; then
  1041.     echo 'x - skipping dmake/msdos/bccdos/tempnam.c (File already exists)'
  1042.     rm -f _shar_wnt_.tmp
  1043. else
  1044. > _shar_wnt_.tmp
  1045. sed 's/^X//' << 'SHAR_EOF' > 'dmake/msdos/bccdos/tempnam.c' &&
  1046. /*LINTLIBRARY*/
  1047. #include <stdio.h>
  1048. #include <string.h>
  1049. #include <stdlib.h>
  1050. #include <dos.h>
  1051. X
  1052. #if defined(max)
  1053. #   undef  max
  1054. #endif
  1055. #define max(A,B) (((A)<(B))?(B):(A))
  1056. X
  1057. extern char *mktemp();
  1058. extern int access();
  1059. int _access();
  1060. X
  1061. /* Turbo C stdio.h doesn't define P_tmpdir, so let's do it here */
  1062. /* Under DOS leave the default tmpdir pointing here!        */
  1063. static char *P_tmpdir = "";
  1064. X
  1065. char *
  1066. tempnam(dir, prefix)
  1067. char *dir;        /* use this directory please (if non-NULL) */
  1068. char *prefix;        /* use this (if non-NULL) as filename prefix */
  1069. {
  1070. X   static         int count = 0;
  1071. X   register char *p, *q, *tmpdir;
  1072. X   int            tl=0, dl=0, pl;
  1073. X   char          buf[30];
  1074. X
  1075. X   pl = strlen(P_tmpdir);
  1076. X
  1077. X   if( (tmpdir = getenv("TMPDIR")) != NULL ) tl = strlen(tmpdir);
  1078. X   if( dir != NULL ) dl = strlen(dir);
  1079. X
  1080. X   if( (p = malloc((unsigned)(max(max(dl,tl),pl)+13))) == NULL )
  1081. X     return(NULL);
  1082. X
  1083. X   *p = '\0';
  1084. X
  1085. X   if( (tl == 0) || (_access( strcpy(p, tmpdir), 0) != 0) )
  1086. X     if( (dl == 0) || (_access( strcpy(p, dir), 0) != 0) )
  1087. X    if( _access( strcpy(p, P_tmpdir), 0) != 0 )
  1088. X       if( !prefix )
  1089. X          prefix = "tp";
  1090. X
  1091. X   if(prefix)
  1092. X   {
  1093. X      *(p+strlen(p)+2) = '\0';
  1094. X      (void)strncat(p, prefix, 2);
  1095. X   }
  1096. X
  1097. X   sprintf( buf, "%08x", _psp );
  1098. X   buf[6]='\0';
  1099. X   (void)strcat(p, buf );
  1100. X   sprintf( buf, "%04d", count++ );
  1101. X   q=p+strlen(p)-6;
  1102. X   *q++ = buf[0]; *q++ = buf[1];
  1103. X   *q++ = buf[2]; *q++ = buf[3];
  1104. X
  1105. X   if( (q = strrchr(p,'.')) != NULL ) *q = '\0';
  1106. X
  1107. X   return(p);
  1108. }
  1109. X
  1110. X
  1111. X
  1112. _access( name, flag )
  1113. char *name;
  1114. int  flag;
  1115. {
  1116. X   char *p;
  1117. X   int r;
  1118. X
  1119. X   if( name == NULL || !*name ) return(1);  /* NULL dir means current dir */
  1120. X   r = access( name, flag );
  1121. X   p = name+strlen(name)-1;
  1122. X   if(*p != '/' && *p != '\\') strcat( p, "/" );
  1123. X
  1124. X   return( r );
  1125. }
  1126. SHAR_EOF
  1127. chmod 0640 dmake/msdos/bccdos/tempnam.c ||
  1128. echo 'restore of dmake/msdos/bccdos/tempnam.c failed'
  1129. Wc_c="`wc -c < 'dmake/msdos/bccdos/tempnam.c'`"
  1130. test 1724 -eq "$Wc_c" ||
  1131.     echo 'dmake/msdos/bccdos/tempnam.c: original size 1724, current size' "$Wc_c"
  1132. rm -f _shar_wnt_.tmp
  1133. fi
  1134. # ============= dmake/msdos/bccdos/utime.c ==============
  1135. if test -f 'dmake/msdos/bccdos/utime.c' -a X"$1" != X"-c"; then
  1136.     echo 'x - skipping dmake/msdos/bccdos/utime.c (File already exists)'
  1137.     rm -f _shar_wnt_.tmp
  1138. else
  1139. > _shar_wnt_.tmp
  1140. sed 's/^X//' << 'SHAR_EOF' > 'dmake/msdos/bccdos/utime.c' &&
  1141. /*
  1142. ** change access and modify times of file
  1143. */
  1144. #include <sys/stat.h>
  1145. #include <fcntl.h>
  1146. #include <time.h>
  1147. X
  1148. int
  1149. utime(name, timep)/*
  1150. ====================
  1151. X    Broken for turbo C it only sets the file time to the current time by
  1152. X    touching a character in the file */
  1153. char*    name;
  1154. time_t    timep[2];
  1155. {
  1156. X    struct  stat buf;
  1157. X    int    fil;
  1158. X    char    data;
  1159. X
  1160. X    if (stat(name, &buf) != 0)
  1161. X        return (-1);
  1162. X    if (buf.st_size != 0)  {
  1163. X        if ((fil = open(name, O_RDWR, S_IWRITE)) < 0)
  1164. X            return (-1);
  1165. X        if (read(fil, &data, 1) < 1) {
  1166. X            close(fil);
  1167. X            return (-1);
  1168. X        }
  1169. X        lseek(fil, 0L, 0);
  1170. X        if (write(fil, &data, 1) < 1) {
  1171. X            close(fil);
  1172. X            return (-1);
  1173. X        }
  1174. X        close(fil);
  1175. X        return (0);
  1176. X    } else     if ((fil = creat(name, S_IWRITE)) < 0) {
  1177. X        return (-1);
  1178. X    } else {
  1179. X        close(fil);
  1180. X        return (0);
  1181. X    }
  1182. }
  1183. SHAR_EOF
  1184. chmod 0640 dmake/msdos/bccdos/utime.c ||
  1185. echo 'restore of dmake/msdos/bccdos/utime.c failed'
  1186. Wc_c="`wc -c < 'dmake/msdos/bccdos/utime.c'`"
  1187. test 767 -eq "$Wc_c" ||
  1188.     echo 'dmake/msdos/bccdos/utime.c: original size 767, current size' "$Wc_c"
  1189. rm -f _shar_wnt_.tmp
  1190. fi
  1191. # ============= dmake/msdos/config.mk ==============
  1192. if test -f 'dmake/msdos/config.mk' -a X"$1" != X"-c"; then
  1193.     echo 'x - skipping dmake/msdos/config.mk (File already exists)'
  1194.     rm -f _shar_wnt_.tmp
  1195. else
  1196. > _shar_wnt_.tmp
  1197. sed 's/^X//' << 'SHAR_EOF' > 'dmake/msdos/config.mk' &&
  1198. # This is an OS specific configuration file
  1199. #    It assumes that OBJDIR, TARGET and DEBUG are previously defined.
  1200. #    It defines    CFLAGS, LDARGS, CPPFLAGS, STARTUPFILE, LDOBJS
  1201. #    It augments    SRC, OBJDIR, TARGET, CFLAGS, LDLIBS
  1202. #
  1203. X
  1204. # Memory model to compile for
  1205. # set to s - small, m - medium, c - compact, l - large
  1206. # Need large model now, dmake has grown up :-)
  1207. MODEL = l
  1208. X
  1209. STARTUPFILE    = $(OS)/startup.mk
  1210. X
  1211. CPPFLAGS     = $(CFLAGS)
  1212. LDOBJS        = $(CSTARTUP) $(OBJDIR)/{$(<:f)}
  1213. LDARGS        = @$(LDTMPOBJ),$(TARGET),NUL.MAP$(LDTAIL)
  1214. LDTAIL        = $(_libs)$(LDFLAGS:s/ //)
  1215. _libs           = $(!null,$(LDLIBS) ,@$(LDTMPLIB))
  1216. LDTMPOBJ    = $(mktmp,,$(DIVFILE) $(LDOBJS:s,/,\\,:t"+\n")\n)
  1217. LDTMPLIB    = $(mktmp,,$(DIVFILE) $(LDLIBS:s,/,\\,:t"+\n")\n)
  1218. X
  1219. # Debug flags
  1220. DB_CFLAGS    = -DDBUG
  1221. DB_LDFLAGS    =
  1222. DB_LDLIBS    =
  1223. X
  1224. # NO Debug flags
  1225. NDB_CFLAGS    =
  1226. NDB_LDFLAGS    =
  1227. NDB_LDLIBS    =
  1228. X
  1229. # Local configuration modifications for CFLAGS.
  1230. CFLAGS         += -I$(OS)
  1231. X
  1232. # Common MSDOS source files.
  1233. # Define SWAP to anything but 'y' for the swap code to be excluded on making.
  1234. # Swapping for DOS versions is enabled by default.
  1235. SWAP *= y
  1236. .IF $(SWAP) == y
  1237. X   SWP_SRC = find.c spawn.c
  1238. X   ASRC += exec.asm
  1239. .ELSE
  1240. X   SWP_SRC = tee.c
  1241. .END
  1242. X
  1243. OS_SRC += ruletab.c dirbrk.c runargv.c arlib.c _chdir.c switchar.c rmprq.c\
  1244. X        $(SWP_SRC)
  1245. SRC += $(OS_SRC)
  1246. .SETDIR=$(OS) : $(ASRC) $(OS_SRC)
  1247. X
  1248. # Provide our own %$O : %$S rule.
  1249. %$O : %$S
  1250. X    $(AS) $(ASFLAGS) $(<:s,/,\,);
  1251. X    mv $(@:f) $(OBJDIR)
  1252. X
  1253. # Set source dirs so that we can find files named in this
  1254. SHAR_EOF
  1255. true || echo 'restore of dmake/msdos/config.mk failed'
  1256. fi
  1257. echo 'End of part 21, continue with part 22'
  1258. echo 22 > _shar_seq_.tmp
  1259. exit 0
  1260.  
  1261. exit 0 # Just in case...
  1262. -- 
  1263. Kent Landfield                   INTERNET: kent@sparky.IMD.Sterling.COM
  1264. Sterling Software, IMD           UUCP:     uunet!sparky!kent
  1265. Phone:    (402) 291-8300         FAX:      (402) 291-4362
  1266. Please send comp.sources.misc-related mail to kent@uunet.uu.net.
  1267.