home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / misc / volume14 / dmake / part06 < prev    next >
Encoding:
Text File  |  1990-07-26  |  39.5 KB  |  1,311 lines

  1. Newsgroups: comp.sources.misc
  2. subject: v14i016: dmake version 3.5 part 6/21
  3. From: dvadura@watdragon.waterloo.edu (Dennis Vadura)
  4. Sender: allbery@uunet.UU.NET (Brandon S. Allbery - comp.sources.misc)
  5.  
  6. Posting-number: Volume 14, Issue 16
  7. Submitted-by: dvadura@watdragon.waterloo.edu (Dennis Vadura)
  8. Archive-name: dmake/part06
  9.  
  10. #!/bin/sh
  11. # this is part 6 of a multipart archive
  12. # do not concatenate these parts, unpack them in order with /bin/sh
  13. # file parse.c continued
  14. #
  15. CurArch=6
  16. if test ! -r s2_seq_.tmp
  17. then echo "Please unpack part 1 first!"
  18.      exit 1; fi
  19. ( read Scheck
  20.   if test "$Scheck" != $CurArch
  21.   then echo "Please unpack part $Scheck next!"
  22.        exit 1;
  23.   else exit 0; fi
  24. ) < s2_seq_.tmp || exit 1
  25. echo "x - Continuing file parse.c"
  26. sed 's/^X//' << 'SHAR_EOF' >> parse.c
  27. X           if( *_strspn( Buffer, " \t" ) == '\0' ) break;
  28. X           
  29. X           /* otherwise assume it was a line of unrecognized input, or a
  30. X            * recipe line out of place so print a message */
  31. X        
  32. X           Fatal( "Expecting macro or rule defn, found neither" );
  33. X           break;
  34. X
  35. X        default:
  36. X           Fatal( "Internal -- UNKNOWN Parser state %d", state );
  37. X     }
  38. X   }
  39. X}
  40. X
  41. SHAR_EOF
  42. echo "File parse.c is complete"
  43. chmod 0440 parse.c || echo "restore of parse.c fails"
  44. echo mkdir - msdos
  45. mkdir msdos
  46. echo mkdir - msdos/tccdos
  47. mkdir msdos/tccdos
  48. echo "x - extracting msdos/tccdos/utime.c (Text)"
  49. sed 's/^X//' << 'SHAR_EOF' > msdos/tccdos/utime.c &&
  50. X/*
  51. X** change access and modify times of file
  52. X*/
  53. X#include <sys/stat.h>
  54. X#include <fcntl.h>
  55. X#include <time.h>
  56. X
  57. Xint
  58. Xutime(name, timep)/*
  59. X====================
  60. X    Broken for turbo C it only sets the file time to the current time by
  61. X    touching a character in the file */
  62. Xchar*    name;
  63. Xtime_t    timep[2];
  64. X{
  65. X    struct  stat buf;
  66. X    int    fil;
  67. X    char    data;
  68. X
  69. X    if (stat(name, &buf) != 0)
  70. X        return (-1);
  71. X    if (buf.st_size != 0)  {
  72. X        if ((fil = open(name, O_RDWR, S_IWRITE)) < 0)
  73. X            return (-1);
  74. X        if (read(fil, &data, 1) < 1) {
  75. X            close(fil);
  76. X            return (-1);
  77. X        }
  78. X        lseek(fil, 0L, 0);
  79. X        if (write(fil, &data, 1) < 1) {
  80. X            close(fil);
  81. X            return (-1);
  82. X        }
  83. X        close(fil);
  84. X        return (0);
  85. X    } else     if ((fil = creat(name, S_IWRITE)) < 0) {
  86. X        return (-1);
  87. X    } else {
  88. X        close(fil);
  89. X        return (0);
  90. X    }
  91. X}
  92. SHAR_EOF
  93. chmod 0640 msdos/tccdos/utime.c || echo "restore of msdos/tccdos/utime.c fails"
  94. echo "x - extracting msdos/tccdos/tempnam.c (Text)"
  95. sed 's/^X//' << 'SHAR_EOF' > msdos/tccdos/tempnam.c &&
  96. X/*LINTLIBRARY*/
  97. X#include <stdio.h>
  98. X#include <string.h>
  99. X#include <stdlib.h>
  100. X#include <time.h>
  101. X
  102. X#define max(A,B) (((A)<(B))?(B):(A))
  103. X
  104. Xextern char *mktemp();
  105. Xextern int access();
  106. Xint _access();
  107. X
  108. X/* Turbo C stdio.h doesn't define P_tmpdir, so let's do it here */
  109. X/* Under DOS leave the default tmpdir pointing here!        */
  110. Xstatic char *P_tmpdir = "";
  111. X
  112. Xchar *
  113. Xtempnam(dir, prefix)
  114. Xchar *dir;        /* use this directory please (if non-NULL) */
  115. Xchar *prefix;        /* use this (if non-NULL) as filename prefix */
  116. X{
  117. X   static         int count = 0;
  118. X   register char *p, *q, *tmpdir;
  119. X   int            tl=0, dl=0, pl;
  120. X   char          buf[30];
  121. X
  122. X   pl = strlen(P_tmpdir);
  123. X
  124. X   if( (tmpdir = getenv("TMPDIR")) != NULL ) tl = strlen(tmpdir);
  125. X   if( dir != NULL ) dl = strlen(dir);
  126. X
  127. X   if( (p = malloc((unsigned)(max(max(dl,tl),pl)+12))) == NULL )
  128. X     return(NULL);
  129. X
  130. X   *p = '\0';
  131. X
  132. X   if( (tl == 0) || (_access( strcpy(p, tmpdir), 0) != 0) )
  133. X     if( (dl == 0) || (_access( strcpy(p, dir), 0) != 0) )
  134. X    if( _access( strcpy(p, P_tmpdir), 0) != 0 )
  135. X       if( !prefix )
  136. X          prefix = "tp";
  137. X
  138. X   if(prefix)
  139. X   {
  140. X      *(p+strlen(p)+2) = '\0';
  141. X      (void)strncat(p, prefix, 2);
  142. X   }
  143. X
  144. X   sprintf( buf, "%ld", (long) time((time_t *)0) );
  145. X   (void)strcat(p, buf+strlen(buf)-6 );
  146. X   sprintf( buf, "%03d", count++ );
  147. X   q=p+strlen(p)-6;
  148. X   *q++ = buf[0];
  149. X   *q++ = buf[1];
  150. X   *q++ = buf[2];
  151. X
  152. X   if( (q = strrchr(p,'.')) != NULL ) *q = '\0';
  153. X
  154. X   return(p);
  155. X}
  156. X
  157. X
  158. X
  159. X_access( name, flag )
  160. Xchar *name;
  161. Xint  flag;
  162. X{
  163. X   char *p;
  164. X   int r;
  165. X
  166. X   if( name == NULL || !*name ) return(1);  /* NULL dir means current dir */
  167. X   r = access( name, flag );
  168. X   p = name+strlen(name)-1;
  169. X   if(*p != '/' && *p != '\\') strcat( p, "/" );
  170. X
  171. X   return( r );
  172. X}
  173. SHAR_EOF
  174. chmod 0640 msdos/tccdos/tempnam.c || echo "restore of msdos/tccdos/tempnam.c fails"
  175. echo "x - extracting msdos/tccdos/tccobj.rsp (Text)"
  176. sed 's/^X//' << 'SHAR_EOF' > msdos/tccdos/tccobj.rsp &&
  177. Xc:\lib.tcc\c0s.obj+
  178. Xobjects\infer.obj+
  179. Xobjects\make.obj+
  180. Xobjects\stat.obj+
  181. Xobjects\expand.obj+
  182. Xobjects\string.obj+
  183. Xobjects\hash.obj+
  184. Xobjects\dag.obj+
  185. Xobjects\dmake.obj+
  186. Xobjects\path.obj+
  187. Xobjects\imacs.obj+
  188. Xobjects\sysintf.obj+
  189. Xobjects\parse.obj+
  190. Xobjects\getinp.obj+
  191. Xobjects\quit.obj+
  192. Xobjects\basename.obj+
  193. Xobjects\dump.obj+
  194. Xobjects\macparse.obj+
  195. Xobjects\rulparse.obj+
  196. Xobjects\percent.obj+
  197. Xobjects\ruletab.obj+
  198. Xobjects\dirbrk.obj+
  199. Xobjects\runargv.obj+
  200. Xobjects\arlib.obj+
  201. Xobjects\_chdir.obj+
  202. Xobjects\switchar.obj+
  203. Xobjects\rmprq.obj+
  204. Xobjects\tempnam.obj+
  205. Xobjects\utime.obj
  206. SHAR_EOF
  207. chmod 0640 msdos/tccdos/tccobj.rsp || echo "restore of msdos/tccdos/tccobj.rsp fails"
  208. echo "x - extracting msdos/tccdos/tcclib.rsp (Text)"
  209. sed 's/^X//' << 'SHAR_EOF' > msdos/tccdos/tcclib.rsp &&
  210. Xc:\lib.tcc\emu+
  211. Xc:\lib.tcc\maths+
  212. Xc:\lib.tcc\cs
  213. SHAR_EOF
  214. chmod 0640 msdos/tccdos/tcclib.rsp || echo "restore of msdos/tccdos/tcclib.rsp fails"
  215. echo "x - extracting msdos/tccdos/tcc.rsp (Text)"
  216. sed 's/^X//' << 'SHAR_EOF' > msdos/tccdos/tcc.rsp &&
  217. Xc:\lib.tcc\c0s.obj+
  218. Xobjects\infer+
  219. Xobjects\make+
  220. Xobjects\stat+
  221. Xobjects\expand+
  222. Xobjects\string+
  223. Xobjects\hash+
  224. Xobjects\dag+
  225. Xobjects\dmake+
  226. Xobjects\path+
  227. Xobjects\imacs+
  228. Xobjects\sysintf+
  229. Xobjects\parse+
  230. Xobjects\getinp+
  231. Xobjects\quit+
  232. Xobjects\basename+
  233. Xobjects\dump+
  234. Xobjects\macparse+
  235. Xobjects\rulparse+
  236. Xobjects\percent+
  237. Xobjects\ruletab+
  238. Xobjects\dirsep+
  239. Xobjects\runargv+
  240. Xobjects\arlib+
  241. Xobjects\_chdir+
  242. Xobjects\switchar+
  243. Xobjects\tempnam
  244. Xobjects\infer
  245. X/c/x
  246. Xc:\lib.tcc\EMU.LIB+
  247. Xc:\lib.tcc\maths.lib+
  248. SHAR_EOF
  249. chmod 0640 msdos/tccdos/tcc.rsp || echo "restore of msdos/tccdos/tcc.rsp fails"
  250. echo "x - extracting msdos/tccdos/startup.mk (Text)"
  251. sed 's/^X//' << 'SHAR_EOF' > msdos/tccdos/startup.mk &&
  252. X# MSDOS DMAKE startup file.  Customize to suit your needs.
  253. X# Assumes MKS toolkit for the tool commands, and Turbo-C.  Change as req'd.
  254. X# See the documentation for a description of internally defined macros.
  255. X#
  256. X# Disable warnings for macros redefined here that were given
  257. X# on the command line.
  258. X__.SILENT := $(.SILENT)
  259. X.SILENT   := yes
  260. X
  261. X# Configuration parameters for DMAKE startup.mk file
  262. X# Set these to NON-NULL if you wish to turn the parameter on.
  263. X_HAVE_RCS    := yes        # yes => RCS  is installed.
  264. X_HAVE_SCCS    :=         # yes => SCCS is installed.
  265. X
  266. X# Applicable suffix definitions
  267. XA := .lib    # Libraries
  268. XE := .exe    # Executables
  269. XF := .for    # Fortran
  270. XO := .obj    # Objects
  271. XP := .pas    # Pascal
  272. XS := .asm    # Assembler sources
  273. XV :=         # RCS suffix
  274. X
  275. X# See if these are defined
  276. XTMPDIR := $(ROOTDIR)/tmp
  277. X.IMPORT .IGNORE : TMPDIR SHELL COMSPEC
  278. X
  279. X# Recipe execution configurations
  280. X# First set SHELL, If it is not defined, use COMSPEC, otherwise
  281. X# it is assumed to be MKS Korn SHELL.
  282. X.IF $(SHELL) == $(NULL)
  283. X.IF $(COMSPEC) == $(NULL)
  284. X   SHELL := $(ROOTDIR)/bin/sh$E
  285. X.ELSE
  286. X   SHELL := $(COMSPEC)
  287. X.END
  288. X.END
  289. XGROUPSHELL := $(SHELL)
  290. X
  291. X# Now set remaining arguments depending on which SHELL we
  292. X# are going to use.  COMSPEC (assumed to be command.com) or
  293. X# MKS Korn Shell.
  294. X.IF $(SHELL)==$(COMSPEC)
  295. XSHELLFLAGS  := $(SWITCHAR)c
  296. XGROUPFLAGS  := $(SHELLFLAGS)
  297. XSHELLMETAS  := *"?<>
  298. XGROUPSUFFIX := .bat
  299. X.ELSE
  300. XSHELLFLAGS  := -c
  301. XGROUPFLAGS  := 
  302. XSHELLMETAS  := *"?<>|()&][$$\#`'
  303. XGROUPSUFFIX := .ksh
  304. X.END
  305. X
  306. X# Standard C-language command names and flags
  307. X   CC      := tcc        # C-compiler and flags
  308. X   CFLAGS   =
  309. X
  310. X   AS      := tasm        # Assembler and flags
  311. X   ASFLAGS  = 
  312. X
  313. X   LD       = tlink        # Loader and flags
  314. X   LDFLAGS  =
  315. X   LDLIBS   =
  316. X
  317. X# Definition of $(MAKE) macro for recursive makes.
  318. X   MAKE = $(MAKECMD) $(MFLAGS)
  319. X
  320. X# Language and Parser generation Tools and their flags
  321. X   YACC      := yacc        # standard yacc
  322. X   YFLAGS  =
  323. X   YTAB      := ytab        # yacc output files name stem.
  324. X
  325. X   LEX      := lex        # standard lex
  326. X   LFLAGS  =
  327. X   LEXYY  := lex_yy        # lex output file
  328. X
  329. X# Other Compilers, Tools and their flags
  330. X   PC    := tpc            # pascal compiler
  331. X   RC    := anyf77        # ratfor compiler
  332. X   FC    := anyf77        # fortran compiler
  333. X
  334. X   CO       := co        # check out for RCS
  335. X   COFLAGS := -q
  336. X
  337. X   AR     := ar            # archiver
  338. X   ARFLAGS = ruv
  339. X
  340. X   RM       := /bin/rm        # remove a file command
  341. X   RMFLAGS  =
  342. X
  343. X# Implicit generation rules for making inferences.
  344. X# We don't provide .yr or .ye rules here.  They're obsolete.
  345. X# Rules for making *$O
  346. X   %$O : %.c  ; $(CC) $(CFLAGS) -c $<
  347. X   %$O : %$P ; $(PC) $(PFLAGS) -c $<
  348. X   %$O : %$S ; $(AS) $<
  349. X   %$O : %.cl ; class -c $<
  350. X   %$O : %.e %.r %.F %$F ; $(FC) $(RFLAGS) $(EFLAGS) $(FFLAGS) -c $<
  351. X
  352. X# Executables
  353. X   %$E : %$O ; $(LD) $(LDFLAGS) -e$@ $< $(LDLIBS)
  354. X
  355. X# lex and yacc rules
  356. X   %.c : %.y ; $(YACC)  $(YFLAGS) $<; mv $(YTAB).c $@
  357. X   %.c : %.l ; $(LEX)   $(LFLAGS) $<; mv $(LEXYY).c $@
  358. X
  359. X# RCS support
  360. X.IF $(_HAVE_RCS)
  361. X   % : $$(@:d)RCS/$$(@:f)$V;- $(CO) $(COFLAGS) $@
  362. X   .NOINFER : $$(@:d)RCS/$$(@:f)$V
  363. X.END
  364. X
  365. X# SCCS support
  366. X.IF $(_HAVE_SCCS)
  367. X   % : s.% ; get $@
  368. X   .NOINFER : s.%
  369. X.END
  370. X
  371. X# Recipe to make archive files.
  372. X%$A :
  373. X[
  374. X   $(AR) $(ARFLAGS) $@ $?
  375. X   $(RM) $(RMFLAGS) $?
  376. X]
  377. X
  378. X# DMAKE uses this recipe to remove intermediate targets
  379. X.REMOVE :; $(RM) -f $<
  380. X
  381. X# AUGMAKE extensions for SYSV compatibility
  382. X@B = $(@:b)
  383. X@D = $(@:d)
  384. X@F = $(@:f)
  385. X*B = $(*:b)
  386. X*D = $(*:d)
  387. X*F = $(*:f)
  388. X<B = $(<:b)
  389. X<D = $(<:d)
  390. X<F = $(<:f)
  391. X?B = $(?:b)
  392. X?F = $(?:f)
  393. X?D = $(?:d)
  394. X
  395. X# Turn warnings back to previous setting.
  396. X.SILENT := $(__.SILENT)
  397. X
  398. X# Local init file if any, gets parsed before user makefile
  399. X.INCLUDE .IGNORE: "_startup.mk"
  400. SHAR_EOF
  401. chmod 0640 msdos/tccdos/startup.mk || echo "restore of msdos/tccdos/startup.mk fails"
  402. echo "x - extracting msdos/tccdos/make.bat (Text)"
  403. sed 's/^X//' << 'SHAR_EOF' > msdos/tccdos/make.bat &&
  404. Xmkdir objects
  405. Xtcc -c -DHELP -I. -Icommon -Imsdos -Imsdos\tccdos -f- -d -1 -N- -w-nod  infer.c
  406. Xmv infer.obj objects
  407. Xtcc -c -DHELP -I. -Icommon -Imsdos -Imsdos\tccdos -f- -d -1 -N- -w-nod  make.c
  408. Xmv make.obj objects
  409. Xtcc -c -DHELP -I. -Icommon -Imsdos -Imsdos\tccdos -f- -d -1 -N- -w-nod  stat.c
  410. Xmv stat.obj objects
  411. Xtcc -c -DHELP -I. -Icommon -Imsdos -Imsdos\tccdos -f- -d -1 -N- -w-nod  expand.c
  412. Xmv expand.obj objects
  413. Xtcc -c -DHELP -I. -Icommon -Imsdos -Imsdos\tccdos -f- -d -1 -N- -w-nod  string.c
  414. Xmv string.obj objects
  415. Xtcc -c -DHELP -I. -Icommon -Imsdos -Imsdos\tccdos -f- -d -1 -N- -w-nod  hash.c
  416. Xmv hash.obj objects
  417. Xtcc -c -DHELP -I. -Icommon -Imsdos -Imsdos\tccdos -f- -d -1 -N- -w-nod  dag.c
  418. Xmv dag.obj objects
  419. Xtcc -c -DHELP -I. -Icommon -Imsdos -Imsdos\tccdos -f- -d -1 -N- -w-nod  dmake.c
  420. Xmv dmake.obj objects
  421. Xtcc -c -DHELP -I. -Icommon -Imsdos -Imsdos\tccdos -f- -d -1 -N- -w-nod  path.c
  422. Xmv path.obj objects
  423. Xtcc -c -DHELP -I. -Icommon -Imsdos -Imsdos\tccdos -f- -d -1 -N- -w-nod  imacs.c
  424. Xmv imacs.obj objects
  425. Xtcc -c -DHELP -I. -Icommon -Imsdos -Imsdos\tccdos -f- -d -1 -N- -w-nod  sysintf.c
  426. Xmv sysintf.obj objects
  427. Xtcc -c -DHELP -I. -Icommon -Imsdos -Imsdos\tccdos -f- -d -1 -N- -w-nod  parse.c
  428. Xmv parse.obj objects
  429. Xtcc -c -DHELP -I. -Icommon -Imsdos -Imsdos\tccdos -f- -d -1 -N- -w-nod  getinp.c
  430. Xmv getinp.obj objects
  431. Xtcc -c -DHELP -I. -Icommon -Imsdos -Imsdos\tccdos -f- -d -1 -N- -w-nod  quit.c
  432. Xmv quit.obj objects
  433. Xtcc -c -DHELP -I. -Icommon -Imsdos -Imsdos\tccdos -f- -d -1 -N- -w-nod  basename.c
  434. Xmv basename.obj objects
  435. Xtcc -c -DHELP -I. -Icommon -Imsdos -Imsdos\tccdos -f- -d -1 -N- -w-nod  dump.c
  436. Xmv dump.obj objects
  437. Xtcc -c -DHELP -I. -Icommon -Imsdos -Imsdos\tccdos -f- -d -1 -N- -w-nod  macparse.c
  438. Xmv macparse.obj objects
  439. Xtcc -c -DHELP -I. -Icommon -Imsdos -Imsdos\tccdos -f- -d -1 -N- -w-nod  rulparse.c
  440. Xmv rulparse.obj objects
  441. Xtcc -c -DHELP -I. -Icommon -Imsdos -Imsdos\tccdos -f- -d -1 -N- -w-nod  percent.c
  442. Xmv percent.obj objects
  443. Xtcc -c -DHELP -I. -Icommon -Imsdos -Imsdos\tccdos -f- -d -1 -N- -w-nod  msdos\ruletab.c
  444. Xmv ruletab.obj objects
  445. Xtcc -c -DHELP -I. -Icommon -Imsdos -Imsdos\tccdos -f- -d -1 -N- -w-nod  msdos\dirbrk.c
  446. Xmv dirbrk.obj objects
  447. Xtcc -c -DHELP -I. -Icommon -Imsdos -Imsdos\tccdos -f- -d -1 -N- -w-nod  msdos\runargv.c
  448. Xmv runargv.obj objects
  449. Xtcc -c -DHELP -I. -Icommon -Imsdos -Imsdos\tccdos -f- -d -1 -N- -w-nod  msdos\arlib.c
  450. Xmv arlib.obj objects
  451. Xtcc -c -DHELP -I. -Icommon -Imsdos -Imsdos\tccdos -f- -d -1 -N- -w-nod  msdos\_chdir.c
  452. Xmv _chdir.obj objects
  453. Xtcc -c -DHELP -I. -Icommon -Imsdos -Imsdos\tccdos -f- -d -1 -N- -w-nod  msdos\switchar.c
  454. Xmv switchar.obj objects
  455. Xtcc -c -DHELP -I. -Icommon -Imsdos -Imsdos\tccdos -f- -d -1 -N- -w-nod  msdos\rmprq.c
  456. Xmv rmprq.obj objects
  457. Xtcc -c -DHELP -I. -Icommon -Imsdos -Imsdos\tccdos -f- -d -1 -N- -w-nod  msdos\tccdos\tempnam.c
  458. Xmv tempnam.obj objects
  459. Xtcc -c -DHELP -I. -Icommon -Imsdos -Imsdos\tccdos -f- -d -1 -N- -w-nod  msdos\tccdos\utime.c
  460. Xmv utime.obj objects
  461. Xtlink @msdos\tccdos\tccobj.rsp,dmake.exe,NUL.MAP,@msdos\tccdos\tcclib.rsp
  462. SHAR_EOF
  463. chmod 0640 msdos/tccdos/make.bat || echo "restore of msdos/tccdos/make.bat fails"
  464. echo "x - extracting msdos/tccdos/config.mk (Text)"
  465. sed 's/^X//' << 'SHAR_EOF' > msdos/tccdos/config.mk &&
  466. X# This is the Turbo C 2.0 DOSconfiguration file for DMAKE
  467. X#    It simply modifies the values of SRC, and checks to see if
  468. X#    OSENVIRONMENT is defined.  If so it includes the appropriate
  469. X#    config.mk file.
  470. X#
  471. X# It also sets the values of .SOURCE.c and .SOURCE.h to include the local
  472. X# directory.
  473. X#
  474. Xosrdir := $(OS)$(DIRSEPSTR)$(OSRELEASE)
  475. X
  476. X# tlink does not know how to deal with tmpfiles that have e:\ in their path.
  477. XTMPDIR :=
  478. X.EXPORT : TMPDIR
  479. X
  480. X# Definition of macros for library, and C startup code.
  481. XLDLIBS            = c:/lib.tcc/emu c:/lib.tcc/maths c:/lib.tcc/cs
  482. XCSTARTUP    = c:/lib.tcc/c0s.obj
  483. X
  484. X# The following sources are required for TURBO C 2.0
  485. XSRC += tempnam.c utime.c
  486. X
  487. X.SOURCE.c : $(osrdir)
  488. X.SOURCE.h : $(osrdir)
  489. X
  490. X# Local configuration modifications for CFLAGS, there's local BSD includes
  491. X# too.  Make sure your turboc.cfg file contains a -D__STDC__=1 and -DM_I86=1,
  492. X# if not then uncomment the line below!
  493. X#CFLAGS += -I$(osrdir) -DM_I86=1 -D__STDC__=1
  494. XCFLAGS += -I$(osrdir) -f- -d -1 -N- -w-nod
  495. X
  496. X# See if we modify anything in the lower levels.
  497. X.IF $(OSENVIRONMENT) != $(NULL)
  498. X   .INCLUDE .IGNORE : $(osrdir)$(DIRSEPSTR)$(OSENVIRONMENT)$(DIRSEPSTR)config.mk
  499. X.END
  500. SHAR_EOF
  501. chmod 0640 msdos/tccdos/config.mk || echo "restore of msdos/tccdos/config.mk fails"
  502. echo "x - extracting msdos/tccdos/config.h (Text)"
  503. sed 's/^X//' << 'SHAR_EOF' > msdos/tccdos/config.h &&
  504. X/* RCS      -- $Header$
  505. X-- SYNOPSIS -- Configurarion include file.
  506. X-- 
  507. X-- DESCRIPTION
  508. X--     There is one of these for each specific machine configuration.
  509. X--    It can be used to further tweek the machine specific sources
  510. X--    so that they compile.
  511. X--
  512. X-- AUTHOR
  513. X--      Dennis Vadura, dvadura@watdragon.uwaterloo.ca
  514. X--      CS DEPT, University of Waterloo, Waterloo, Ont., Canada
  515. X--
  516. X-- COPYRIGHT
  517. X--      Copyright (c) 1990 by Dennis Vadura.  All rights reserved.
  518. X-- 
  519. X--      This program is free software; you can redistribute it and/or
  520. X--      modify it under the terms of the GNU General Public License
  521. X--      (version 1), as published by the Free Software Foundation, and
  522. X--      found in the file 'LICENSE' included with this distribution.
  523. X-- 
  524. X--      This program is distributed in the hope that it will be useful,
  525. X--      but WITHOUT ANY WARRANTY; without even the implied warrant of
  526. X--      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  527. X--      GNU General Public License for more details.
  528. X-- 
  529. X--      You should have received a copy of the GNU General Public License
  530. X--      along with this program;  if not, write to the Free Software
  531. X--      Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  532. X--
  533. X-- LOG
  534. X--     $Log$
  535. X*/
  536. X
  537. X/* define this for configurations that don't have the coreleft function
  538. X * so that the code compiles.  To my knowledge coreleft exists only on
  539. X * Turbo C, but it is needed here since the function is used in many debug
  540. X * macros. */
  541. X/*#define coreleft() 0L*/
  542. Xextern unsigned int coreleft();
  543. X#define SIGQUIT    SIGTERM        /* turbo C doesn't understand SIGQUIT */
  544. X
  545. X/*No parallelism in DOS so don't need to explode the graph. */
  546. X#define Explode_prq(a,b,c)
  547. SHAR_EOF
  548. chmod 0640 msdos/tccdos/config.h || echo "restore of msdos/tccdos/config.h fails"
  549. echo "x - extracting msdos/sysintf.h (Text)"
  550. sed 's/^X//' << 'SHAR_EOF' > msdos/sysintf.h &&
  551. X/*
  552. X** assorted bits of system interface
  553. X*/
  554. X#include <sys/types.h>
  555. X#include <sys/stat.h>
  556. X#include <signal.h>
  557. X
  558. X#define STAT stat
  559. X#define VOID_LCACHE(l,m)
  560. Xextern char * tempnam();
  561. Xextern char * getcwd();
  562. X
  563. X/*No parallelism in DOS so don't need to explode the graph. */
  564. X#define Explode_prq(a,b,c)
  565. X
  566. X/*
  567. X** standard C items
  568. X*/
  569. X
  570. X/*
  571. X** DOS interface standard items
  572. X*/
  573. X#define    chdir(p) _chdir(p)
  574. X
  575. X/*
  576. X** make parameters
  577. X*/
  578. X#define    MAXARGV    64
  579. X#define    MAX_PATH_LEN    64
  580. X
  581. SHAR_EOF
  582. chmod 0440 msdos/sysintf.h || echo "restore of msdos/sysintf.h fails"
  583. echo "x - extracting msdos/switchar.c (Text)"
  584. sed 's/^X//' << 'SHAR_EOF' > msdos/switchar.c &&
  585. X/*
  586. X** return switch char
  587. X*/
  588. X#include <dos.h>
  589. X
  590. Xgetswitchar()
  591. X{
  592. X#if defined(M_I86)
  593. X    union REGS rg;
  594. X
  595. X    rg.h.ah = 0x37;        /* switch char request */
  596. X    rg.h.al = 0;        /* get (not set) */
  597. X
  598. X    intdos(&rg, &rg);
  599. X    return (rg.h.dl);
  600. X#endif
  601. X    return ('-');
  602. X}
  603. X
  604. SHAR_EOF
  605. chmod 0440 msdos/switchar.c || echo "restore of msdos/switchar.c fails"
  606. echo "x - extracting msdos/stdarg.h (Text)"
  607. sed 's/^X//' << 'SHAR_EOF' > msdos/stdarg.h &&
  608. X/*
  609. X * stdarg.h
  610. X *
  611. X * defines ANSI style macros for accessing arguments of a function which takes
  612. X * a variable number of arguments
  613. X *
  614. X */
  615. X
  616. X#if !defined(__STDARG)
  617. X#define __STDARG
  618. X
  619. Xtypedef char *va_list;
  620. X
  621. X#define va_dcl int va_alist
  622. X#define va_start(ap,v)  ap = (va_list)&va_alist
  623. X#define va_arg(ap,t)    ((t*)(ap += sizeof(t)))[-1]
  624. X#define va_end(ap)      ap = NULL
  625. X#endif
  626. SHAR_EOF
  627. chmod 0440 msdos/stdarg.h || echo "restore of msdos/stdarg.h fails"
  628. echo "x - extracting msdos/startup.h (Text)"
  629. sed 's/^X//' << 'SHAR_EOF' > msdos/startup.h &&
  630. X/* This file contains the default value of the MAKESTARTUP variable.
  631. X * You must set the quoted string below to the default path to the startup
  632. X * variable, so that it gets compiled in.  LEAVE ROOTDIR at the front of
  633. X * the path.  This allows the user to customize his environment for dmake
  634. X * by setting up a new ROOTDIR environment variable. */
  635. X
  636. X"MAKESTARTUP := $(ROOTDIR)/etc/startup.mk",
  637. SHAR_EOF
  638. chmod 0440 msdos/startup.h || echo "restore of msdos/startup.h fails"
  639. echo "x - extracting msdos/runargv.c (Text)"
  640. sed 's/^X//' << 'SHAR_EOF' > msdos/runargv.c &&
  641. X/* RCS      -- $Header: /u2/dvadura/src/generic/dmake/src/msdos/RCS/runargv.c,v 1.1 90/07/19 14:10:45 dvadura Exp $
  642. X-- SYNOPSIS -- run a sub process.
  643. X-- 
  644. X-- DESCRIPTION
  645. X--    Use spawn to run a subprocess.
  646. X--
  647. X-- AUTHOR
  648. X--      Dennis Vadura, dvadura@watdragon.uwaterloo.ca
  649. X--      CS DEPT, University of Waterloo, Waterloo, Ont., Canada
  650. X--
  651. X-- COPYRIGHT
  652. X--      Copyright (c) 1990 by Dennis Vadura.  All rights reserved.
  653. X-- 
  654. X--      This program is free software; you can redistribute it and/or
  655. X--      modify it under the terms of the GNU General Public License
  656. X--      (version 1), as published by the Free Software Foundation, and
  657. X--      found in the file 'LICENSE' included with this distribution.
  658. X-- 
  659. X--      This program is distributed in the hope that it will be useful,
  660. X--      but WITHOUT ANY WARRANTY; without even the implied warrant of
  661. X--      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  662. X--      GNU General Public License for more details.
  663. X-- 
  664. X--      You should have received a copy of the GNU General Public License
  665. X--      along with this program;  if not, write to the Free Software
  666. X--      Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  667. X--
  668. X-- LOG
  669. X--     $Log:    runargv.c,v $
  670. X * Revision 1.1  90/07/19  14:10:45  dvadura
  671. X * Initial Revision of Version 3.5
  672. X * 
  673. X*/
  674. X
  675. X#include "extern.h"
  676. X#include "sysintf.h"
  677. X#include <process.h>
  678. X#include <string.h>
  679. X#include <errno.h>
  680. X
  681. Xstatic int  _abort_flg = FALSE;
  682. Xstatic void _add_child ANSI((CELLPTR, HOWPTR, int));
  683. Xstatic void _finished_child ANSI((int));
  684. X
  685. Xint
  686. Xrunargv(target, how, ignore, group, last, cmd)
  687. XCELLPTR target;
  688. XHOWPTR  how;
  689. Xint     ignore;
  690. Xint    group;
  691. Xint    last;
  692. Xchar    *cmd;
  693. X{
  694. X   int status;
  695. X   char *argv[MAXARGV];
  696. X
  697. X   Pack_argv( argv, MAXARGV, group, cmd );
  698. X   _add_child(target, how, ignore);
  699. X   status = spawnvp(P_WAIT, argv[0], argv);
  700. X   if( status == -1 ) Error("%s: %s", argv[0], strerror(errno));
  701. X   _finished_child(status);
  702. X   if( last && !Doing_bang ) Update_time_stamp( target, how );
  703. X
  704. X   return( 0 );
  705. X}
  706. X
  707. X
  708. Xvoid
  709. XClean_up_processes()
  710. X{
  711. X   _abort_flg = TRUE;
  712. X   _finished_child(-1);
  713. X}
  714. X
  715. X
  716. Xint
  717. XWait_for_child( abort_flg, pid )
  718. Xint abort_flg;
  719. Xint pid;
  720. X{
  721. X   return(1);
  722. X}
  723. X
  724. X
  725. Xstatic int     _valid = -1;
  726. Xstatic CELLPTR _tg;
  727. Xstatic HOWPTR  _how;
  728. Xstatic int     _ignore;
  729. X
  730. Xstatic void
  731. X_add_child( target, how, ignore )
  732. XCELLPTR target;
  733. XHOWPTR  how;
  734. Xint    ignore;
  735. X{
  736. X   _tg = target;
  737. X   _ignore = ignore;
  738. X   _how    = how;
  739. X   _valid = 0;
  740. X
  741. X   Current_target = NIL(HOW);
  742. X}
  743. X
  744. X
  745. Xstatic void
  746. X_finished_child(status)
  747. Xint    status;
  748. X{
  749. X   if( _valid == -1 ) return;
  750. X   Unlink_temp_files( _how );
  751. X   _valid = -1;
  752. X   Handle_result( status, _ignore, _abort_flg, _tg );
  753. X}
  754. SHAR_EOF
  755. chmod 0440 msdos/runargv.c || echo "restore of msdos/runargv.c fails"
  756. echo "x - extracting msdos/ruletab.c (Text)"
  757. sed 's/^X//' << 'SHAR_EOF' > msdos/ruletab.c &&
  758. X/* RCS      -- $Header: /u2/dvadura/src/generic/dmake/src/msdos/RCS/ruletab.c,v 1.1 90/07/19 14:10:44 dvadura Exp $
  759. X-- SYNOPSIS -- Default initial configuration of dmake.
  760. X-- 
  761. X-- DESCRIPTION
  762. X--     Define here the initial set of rules that are defined before
  763. X--    dmake performs any processing.
  764. X--
  765. X-- AUTHOR
  766. X--      Dennis Vadura, dvadura@watdragon.uwaterloo.ca
  767. X--      CS DEPT, University of Waterloo, Waterloo, Ont., Canada
  768. X--
  769. X-- COPYRIGHT
  770. X--      Copyright (c) 1990 by Dennis Vadura.  All rights reserved.
  771. X-- 
  772. X--      This program is free software; you can redistribute it and/or
  773. X--      modify it under the terms of the GNU General Public License
  774. X--      (version 1), as published by the Free Software Foundation, and
  775. X--      found in the file 'LICENSE' included with this distribution.
  776. X-- 
  777. X--      This program is distributed in the hope that it will be useful,
  778. X--      but WITHOUT ANY WARRANTY; without even the implied warrant of
  779. X--      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  780. X--      GNU General Public License for more details.
  781. X-- 
  782. X--      You should have received a copy of the GNU General Public License
  783. X--      along with this program;  if not, write to the Free Software
  784. X--      Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  785. X--
  786. X-- LOG
  787. X--     $Log:    ruletab.c,v $
  788. X * Revision 1.1  90/07/19  14:10:44  dvadura
  789. X * Initial Revision of Version 3.5
  790. X * 
  791. X*/
  792. X
  793. X/* These are control macros for dmake that MUST be defined at some point
  794. X * if they are NOT dmake will not work!  These are default definitions.  They
  795. X * may be overridden inside the .STARTUP makefile, they are here
  796. X * strictly so that dmake can parse the STARTUP makefile */
  797. X
  798. Xstatic char *_rules[] = {
  799. X    "MAXLINELENGTH := 2046",
  800. X    "MAXPROCESSLIMIT := 1",
  801. X    "MAXPROCESS := 1",
  802. X    ".IMPORT .IGNORE: ROOTDIR",
  803. X    ".MAKEFILES : makefile.mk makefile",
  804. X    ".SOURCE    : .NULL",
  805. X#include "startup.h"
  806. X    0 };
  807. X
  808. Xchar **Rule_tab = _rules; /* for sundry reasons in Get_environment() */
  809. X
  810. SHAR_EOF
  811. chmod 0440 msdos/ruletab.c || echo "restore of msdos/ruletab.c fails"
  812. echo "x - extracting msdos/rmprq.c (Text)"
  813. sed 's/^X//' << 'SHAR_EOF' > msdos/rmprq.c &&
  814. X/* RCS      -- $Header: /u2/dvadura/src/generic/dmake/src/msdos/RCS/rmprq.c,v 1.1 90/07/19 14:10:43 dvadura Exp $
  815. X-- SYNOPSIS -- remove prerequisites code.
  816. X-- 
  817. X-- DESCRIPTION
  818. X--    This code is different for DOS and for UNIX and parallel make
  819. X--    architectures since the parallel case requires the rm's to be
  820. X--    run in parallel, whereas DOS guarantees to run them sequentially.
  821. X-- 
  822. X-- AUTHOR
  823. X--      Dennis Vadura, dvadura@watdragon.uwaterloo.ca
  824. X--      CS DEPT, University of Waterloo, Waterloo, Ont., Canada
  825. X--
  826. X-- COPYRIGHT
  827. X--      Copyright (c) 1990 by Dennis Vadura.  All rights reserved.
  828. X-- 
  829. X--      This program is free software; you can redistribute it and/or
  830. X--      modify it under the terms of the GNU General Public License
  831. X--      (version 1), as published by the Free Software Foundation, and
  832. X--      found in the file 'LICENSE' included with this distribution.
  833. X-- 
  834. X--      This program is distributed in the hope that it will be useful,
  835. X--      but WITHOUT ANY WARRANTY; without even the implied warrant of
  836. X--      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  837. X--      GNU General Public License for more details.
  838. X-- 
  839. X--      You should have received a copy of the GNU General Public License
  840. X--      along with this program;  if not, write to the Free Software
  841. X--      Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  842. X--
  843. X-- LOG
  844. X--     $Log:    rmprq.c,v $
  845. X * Revision 1.1  90/07/19  14:10:43  dvadura
  846. X * Initial Revision of Version 3.5
  847. X * 
  848. X*/
  849. X
  850. X#include "extern.h"
  851. X#include "alloc.h"
  852. X
  853. Xvoid
  854. XRemove_prq( tcp )
  855. XCELLPTR tcp;
  856. X{
  857. X   tcp->ce_flag         &= ~(F_MADE|F_VISITED);
  858. X   tcp->CE_HOW->hw_flag &= ~(F_MADE|F_VISITED);
  859. X   tcp->ce_time          = 0L;
  860. X
  861. X   Make( tcp, tcp->CE_HOW, NIL(CELL) );
  862. X}
  863. SHAR_EOF
  864. chmod 0440 msdos/rmprq.c || echo "restore of msdos/rmprq.c fails"
  865. echo mkdir - msdos/mscdos
  866. mkdir msdos/mscdos
  867. echo "x - extracting msdos/mscdos/tempnam.c (Text)"
  868. sed 's/^X//' << 'SHAR_EOF' > msdos/mscdos/tempnam.c &&
  869. X/*LINTLIBRARY*/
  870. X#include <stdio.h>
  871. X#include <string.h>
  872. X#include <stdlib.h>
  873. X#include <time.h>
  874. X
  875. X#define max(A,B) (((A)<(B))?(B):(A))
  876. X
  877. Xextern char *mktemp();
  878. Xextern int access();
  879. Xint _access();
  880. X
  881. X/* MSC stdio.h defines P_tmpdir, so let's undo it here */
  882. X/* Under DOS leave the default tmpdir pointing here!   */
  883. X#ifdef P_tmpdir
  884. X#undef P_tmpdir
  885. X#endif
  886. Xstatic char *P_tmpdir = "";
  887. X
  888. Xchar *
  889. Xtempnam(dir, prefix)
  890. Xchar *dir;        /* use this directory please (if non-NULL) */
  891. Xchar *prefix;        /* use this (if non-NULL) as filename prefix */
  892. X{
  893. X   static         int count = 0;
  894. X   register char *p, *q, *tmpdir;
  895. X   int            tl=0, dl=0, pl;
  896. X   time_t      ctm;
  897. X   char          buf[30];
  898. X
  899. X   pl = strlen(P_tmpdir);
  900. X
  901. X   if( (tmpdir = getenv("TMPDIR")) != NULL ) tl = strlen(tmpdir);
  902. X   if( dir != NULL ) dl = strlen(dir);
  903. X
  904. X   if( (p = malloc((unsigned)(max(max(dl,tl),pl)+12))) == NULL )
  905. X     return(NULL);
  906. X
  907. X   *p = '\0';
  908. X
  909. X   if( (tl == 0) || (_access( strcpy(p, tmpdir), 0) != 0) )
  910. X     if( (dl == 0) || (_access( strcpy(p, dir), 0) != 0) )
  911. X    if( _access( strcpy(p, P_tmpdir), 0) != 0 )
  912. X       if( !prefix )
  913. X          prefix = "tp";
  914. X
  915. X   if(prefix)
  916. X   {
  917. X      *(p+strlen(p)+2) = '\0';
  918. X      (void)strncat(p, prefix, 2);
  919. X   }
  920. X
  921. X   sprintf( buf, "%ld", (long) time((time_t *)0) );
  922. X   (void)strcat(p, buf+strlen(buf)-6 );
  923. X   sprintf( buf, "%03d", count++ );
  924. X   q=p+strlen(p)-6;
  925. X   *q++ = buf[0];
  926. X   *q++ = buf[1];
  927. X   *q++ = buf[2];
  928. X
  929. X   if( (q = strrchr(p,'.')) != NULL ) *q = '\0';
  930. X
  931. X   return(p);
  932. X}
  933. X
  934. X
  935. X
  936. X_access( name, flag )
  937. Xchar *name;
  938. Xint  flag;
  939. X{
  940. X   char *p;
  941. X   int r;
  942. X
  943. X   if( name == NULL || !*name ) return(1);  /* NULL dir means current dir */
  944. X   r = access( name, flag );
  945. X   p = name+strlen(name)-1;
  946. X   if(*p != '/' && *p != '\\') strcat( p, "/" );
  947. X
  948. X   return( r );
  949. X}
  950. SHAR_EOF
  951. chmod 0640 msdos/mscdos/tempnam.c || echo "restore of msdos/mscdos/tempnam.c fails"
  952. echo "x - extracting msdos/mscdos/startup.mk (Text)"
  953. sed 's/^X//' << 'SHAR_EOF' > msdos/mscdos/startup.mk &&
  954. X# MSDOS DMAKE startup file.  Customize to suit your needs.
  955. X# Assumes MKS toolkit for the tool commands, and Microsoft C.  Change as req'd.
  956. X# See the documentation for a description of internally defined macros.
  957. X#
  958. X# Disable warnings for macros redefined here that were given
  959. X# on the command line.
  960. X__.SILENT := $(.SILENT)
  961. X.SILENT   := yes
  962. X
  963. X# Configuration parameters for DMAKE startup.mk file
  964. X# Set these to NON-NULL if you wish to turn the parameter on.
  965. X_HAVE_RCS    := yes        # yes => RCS  is installed.
  966. X_HAVE_SCCS    :=         # yes => SCCS is installed.
  967. X
  968. X# Applicable suffix definitions
  969. XA := .lib    # Libraries
  970. XE := .exe    # Executables
  971. XF := .for    # Fortran
  972. XO := .obj    # Objects
  973. XP := .pas    # Pascal
  974. XS := .asm    # Assembler sources
  975. XV :=         # RCS suffix
  976. X
  977. X# See if these are defined
  978. XTMPDIR := $(ROOTDIR)/tmp
  979. X.IMPORT .IGNORE : TMPDIR SHELL COMSPEC
  980. X
  981. X# Recipe execution configurations
  982. X# First set SHELL, If it is not defined, use COMSPEC, otherwise
  983. X# it is assumed to be MKS Korn SHELL.
  984. X.IF $(SHELL) == $(NULL)
  985. X.IF $(COMSPEC) == $(NULL)
  986. X   SHELL := $(ROOTDIR)/bin/sh$E
  987. X.ELSE
  988. X   SHELL := $(COMSPEC)
  989. X.END
  990. X.END
  991. XGROUPSHELL := $(SHELL)
  992. X
  993. X# Now set remaining arguments depending on which SHELL we
  994. X# are going to use.  COMSPEC (assumed to be command.com) or
  995. X# MKS Korn Shell.
  996. X.IF $(SHELL)==$(COMSPEC)
  997. XSHELLFLAGS  := $(SWITCHAR)c
  998. XGROUPFLAGS  := $(SHELLFLAGS)
  999. XSHELLMETAS  := *"?<>
  1000. XGROUPSUFFIX := .bat
  1001. X.ELSE
  1002. XSHELLFLAGS  := -c
  1003. XGROUPFLAGS  := 
  1004. XSHELLMETAS  := *"?<>|()&][$$\#`'
  1005. XGROUPSUFFIX := .ksh
  1006. X.END
  1007. X
  1008. X# Standard C-language command names and flags
  1009. X   CC      := cl        # C-compiler and flags
  1010. X   CFLAGS   = -nologo
  1011. X
  1012. X   AS      := masm        # Assembler and flags
  1013. X   ASFLAGS  = -mx -t
  1014. X
  1015. X   LD       = link        # Loader and flags
  1016. X   LDFLAGS  =
  1017. X   LDLIBS   =
  1018. X
  1019. X# Definition of $(MAKE) macro for recursive makes.
  1020. X   MAKE = $(MAKECMD) $(MFLAGS)
  1021. X
  1022. X# Language and Parser generation Tools and their flags
  1023. X   YACC      := yacc        # standard yacc
  1024. X   YFLAGS  =
  1025. X   YTAB      := ytab        # yacc output files name stem.
  1026. X
  1027. X   LEX      := lex        # standard lex
  1028. X   LFLAGS  =
  1029. X   LEXYY  := lex_yy        # lex output file
  1030. X
  1031. X# Other Compilers, Tools and their flags
  1032. X   PC    := any_pc        # pascal compiler
  1033. X   RC    := anyf77        # ratfor compiler
  1034. X   FC    := anyf77        # fortran compiler
  1035. X
  1036. X   CO       := co        # check out for RCS
  1037. X   COFLAGS := -q
  1038. X
  1039. X   AR     := ar            # archiver
  1040. X   ARFLAGS = ruv
  1041. X
  1042. X   RM       := /bin/rm        # remove a file command
  1043. X   RMFLAGS  =
  1044. X
  1045. X# Implicit generation rules for making inferences.
  1046. X# We don't provide .yr or .ye rules here.  They're obsolete.
  1047. X# Rules for making *$O
  1048. X   %$O : %.c  ; $(CC) -o $@ $(CFLAGS) -c $<
  1049. X   %$O : %$P ; $(PC) -o $@ $(PFLAGS) -c $<
  1050. X   %$O : %$S ; $(AS) -o $@ $<
  1051. X   %$O : %.cl ; class -c $<
  1052. X   %$O : %.e %.r %.F %$F ; $(FC) $(RFLAGS) $(EFLAGS) $(FFLAGS) -c $<
  1053. X
  1054. X# Executables
  1055. X   %$E : %$O ;
  1056. X    (LD) $(LDFLAGS) @<+$(<:t"+\n":s,/,\,)
  1057. X    $(@:s,/,\,),$(LDLIBS:t"+\n":s,/,\,)\n+>
  1058. X
  1059. X# lex and yacc rules
  1060. X   %.c : %.y ; $(YACC)  $(YFLAGS) $<; mv $(YTAB).c $@
  1061. X   %.c : %.l ; $(LEX)   $(LFLAGS) $<; mv $(LEXYY).c $@
  1062. X
  1063. X# RCS support
  1064. X.IF $(_HAVE_RCS)
  1065. X   % : $$(@:d)RCS/$$(@:f)$V;- $(CO) $(COFLAGS) $@
  1066. X   .NOINFER : $$(@:d)RCS/$$(@:f)$V
  1067. X.END
  1068. X
  1069. X# SCCS support
  1070. X.IF $(_HAVE_SCCS)
  1071. X   % : s.% ; get $@
  1072. X   .NOINFER : s.%
  1073. X.END
  1074. X
  1075. X# Recipe to make archive files.
  1076. X%$A :
  1077. X[
  1078. X   $(AR) $(ARFLAGS) $@ $?
  1079. X   $(RM) $(RMFLAGS) $?
  1080. X]
  1081. X
  1082. X# DMAKE uses this recipe to remove intermediate targets
  1083. X.REMOVE :; $(RM) -f $<
  1084. X
  1085. X# AUGMAKE extensions for SYSV compatibility
  1086. X@B = $(@:b)
  1087. X@D = $(@:d)
  1088. X@F = $(@:f)
  1089. X*B = $(*:b)
  1090. X*D = $(*:d)
  1091. X*F = $(*:f)
  1092. X<B = $(<:b)
  1093. X<D = $(<:d)
  1094. X<F = $(<:f)
  1095. X?B = $(?:b)
  1096. X?F = $(?:f)
  1097. X?D = $(?:d)
  1098. X
  1099. X# Turn warnings back to previous setting.
  1100. X.SILENT := $(__.SILENT)
  1101. X
  1102. X# Local init file if any, gets parsed before user makefile
  1103. X.INCLUDE .IGNORE: "_startup.mk"
  1104. SHAR_EOF
  1105. chmod 0640 msdos/mscdos/startup.mk || echo "restore of msdos/mscdos/startup.mk fails"
  1106. echo "x - extracting msdos/mscdos/mscobj.rsp (Text)"
  1107. sed 's/^X//' << 'SHAR_EOF' > msdos/mscdos/mscobj.rsp &&
  1108. Xobjects\infer.obj+
  1109. Xobjects\make.obj+
  1110. Xobjects\stat.obj+
  1111. Xobjects\expand.obj+
  1112. Xobjects\string.obj+
  1113. Xobjects\hash.obj+
  1114. Xobjects\dag.obj+
  1115. Xobjects\dmake.obj+
  1116. Xobjects\path.obj+
  1117. Xobjects\imacs.obj+
  1118. Xobjects\sysintf.obj+
  1119. Xobjects\parse.obj+
  1120. Xobjects\getinp.obj+
  1121. Xobjects\quit.obj+
  1122. Xobjects\basename.obj+
  1123. Xobjects\dump.obj+
  1124. Xobjects\macparse.obj+
  1125. Xobjects\rulparse.obj+
  1126. Xobjects\percent.obj+
  1127. Xobjects\ruletab.obj+
  1128. Xobjects\dirbrk.obj+
  1129. Xobjects\runargv.obj+
  1130. Xobjects\arlib.obj+
  1131. Xobjects\_chdir.obj+
  1132. Xobjects\switchar.obj+
  1133. Xobjects\rmprq.obj+
  1134. Xobjects\tempnam.obj
  1135. SHAR_EOF
  1136. chmod 0640 msdos/mscdos/mscobj.rsp || echo "restore of msdos/mscdos/mscobj.rsp fails"
  1137. echo "x - extracting msdos/mscdos/msclib.rsp (Text)"
  1138. sed 's/^X//' << 'SHAR_EOF' > msdos/mscdos/msclib.rsp &&
  1139. X
  1140. SHAR_EOF
  1141. chmod 0640 msdos/mscdos/msclib.rsp || echo "restore of msdos/mscdos/msclib.rsp fails"
  1142. echo "x - extracting msdos/mscdos/make.bat (Text)"
  1143. sed 's/^X//' << 'SHAR_EOF' > msdos/mscdos/make.bat &&
  1144. Xmkdir objects
  1145. Xcl -c -nologo -DHELP -I. -Icommon -Imsdos -Imsdos\mscdos -D__STDC__=1 -DM_I86=1  infer.c
  1146. Xmv infer.obj objects
  1147. Xcl -c -nologo -DHELP -I. -Icommon -Imsdos -Imsdos\mscdos -D__STDC__=1 -DM_I86=1  make.c
  1148. Xmv make.obj objects
  1149. Xcl -c -nologo -DHELP -I. -Icommon -Imsdos -Imsdos\mscdos -D__STDC__=1 -DM_I86=1  stat.c
  1150. Xmv stat.obj objects
  1151. Xcl -c -nologo -DHELP -I. -Icommon -Imsdos -Imsdos\mscdos -D__STDC__=1 -DM_I86=1  expand.c
  1152. Xmv expand.obj objects
  1153. Xcl -c -nologo -DHELP -I. -Icommon -Imsdos -Imsdos\mscdos -D__STDC__=1 -DM_I86=1  string.c
  1154. Xmv string.obj objects
  1155. Xcl -c -nologo -DHELP -I. -Icommon -Imsdos -Imsdos\mscdos -D__STDC__=1 -DM_I86=1  hash.c
  1156. Xmv hash.obj objects
  1157. Xcl -c -nologo -DHELP -I. -Icommon -Imsdos -Imsdos\mscdos -D__STDC__=1 -DM_I86=1  dag.c
  1158. Xmv dag.obj objects
  1159. Xcl -c -nologo -DHELP -I. -Icommon -Imsdos -Imsdos\mscdos -D__STDC__=1 -DM_I86=1  dmake.c
  1160. Xmv dmake.obj objects
  1161. Xcl -c -nologo -DHELP -I. -Icommon -Imsdos -Imsdos\mscdos -D__STDC__=1 -DM_I86=1  path.c
  1162. Xmv path.obj objects
  1163. Xcl -c -nologo -DHELP -I. -Icommon -Imsdos -Imsdos\mscdos -D__STDC__=1 -DM_I86=1  imacs.c
  1164. Xmv imacs.obj objects
  1165. Xcl -c -nologo -DHELP -I. -Icommon -Imsdos -Imsdos\mscdos -D__STDC__=1 -DM_I86=1  sysintf.c
  1166. Xmv sysintf.obj objects
  1167. Xcl -c -nologo -DHELP -I. -Icommon -Imsdos -Imsdos\mscdos -D__STDC__=1 -DM_I86=1  parse.c
  1168. Xmv parse.obj objects
  1169. Xcl -c -nologo -DHELP -I. -Icommon -Imsdos -Imsdos\mscdos -D__STDC__=1 -DM_I86=1  getinp.c
  1170. Xmv getinp.obj objects
  1171. Xcl -c -nologo -DHELP -I. -Icommon -Imsdos -Imsdos\mscdos -D__STDC__=1 -DM_I86=1  quit.c
  1172. Xmv quit.obj objects
  1173. Xcl -c -nologo -DHELP -I. -Icommon -Imsdos -Imsdos\mscdos -D__STDC__=1 -DM_I86=1  basename.c
  1174. Xmv basename.obj objects
  1175. Xcl -c -nologo -DHELP -I. -Icommon -Imsdos -Imsdos\mscdos -D__STDC__=1 -DM_I86=1  dump.c
  1176. Xmv dump.obj objects
  1177. Xcl -c -nologo -DHELP -I. -Icommon -Imsdos -Imsdos\mscdos -D__STDC__=1 -DM_I86=1  macparse.c
  1178. Xmv macparse.obj objects
  1179. Xcl -c -nologo -DHELP -I. -Icommon -Imsdos -Imsdos\mscdos -D__STDC__=1 -DM_I86=1  rulparse.c
  1180. Xmv rulparse.obj objects
  1181. Xcl -c -nologo -DHELP -I. -Icommon -Imsdos -Imsdos\mscdos -D__STDC__=1 -DM_I86=1  percent.c
  1182. Xmv percent.obj objects
  1183. Xcl -c -nologo -DHELP -I. -Icommon -Imsdos -Imsdos\mscdos -D__STDC__=1 -DM_I86=1  msdos\ruletab.c
  1184. Xmv ruletab.obj objects
  1185. Xcl -c -nologo -DHELP -I. -Icommon -Imsdos -Imsdos\mscdos -D__STDC__=1 -DM_I86=1  msdos\dirbrk.c
  1186. Xmv dirbrk.obj objects
  1187. Xcl -c -nologo -DHELP -I. -Icommon -Imsdos -Imsdos\mscdos -D__STDC__=1 -DM_I86=1  msdos\runargv.c
  1188. Xmv runargv.obj objects
  1189. Xcl -c -nologo -DHELP -I. -Icommon -Imsdos -Imsdos\mscdos -D__STDC__=1 -DM_I86=1  msdos\arlib.c
  1190. Xmv arlib.obj objects
  1191. Xcl -c -nologo -DHELP -I. -Icommon -Imsdos -Imsdos\mscdos -D__STDC__=1 -DM_I86=1  msdos\_chdir.c
  1192. Xmv _chdir.obj objects
  1193. Xcl -c -nologo -DHELP -I. -Icommon -Imsdos -Imsdos\mscdos -D__STDC__=1 -DM_I86=1  msdos\switchar.c
  1194. Xmv switchar.obj objects
  1195. Xcl -c -nologo -DHELP -I. -Icommon -Imsdos -Imsdos\mscdos -D__STDC__=1 -DM_I86=1  msdos\rmprq.c
  1196. Xmv rmprq.obj objects
  1197. Xcl -c -nologo -DHELP -I. -Icommon -Imsdos -Imsdos\mscdos -D__STDC__=1 -DM_I86=1  msdos\mscdos\tempnam.c
  1198. Xmv tempnam.obj objects
  1199. Xlink @msdos\mscdos\mscobj.rsp,dmake.exe,NUL.MAP,@msdos\mscdos\msclib.rsp
  1200. SHAR_EOF
  1201. chmod 0640 msdos/mscdos/make.bat || echo "restore of msdos/mscdos/make.bat fails"
  1202. echo "x - extracting msdos/mscdos/config.mk (Text)"
  1203. sed 's/^X//' << 'SHAR_EOF' > msdos/mscdos/config.mk &&
  1204. X# This is the Turbo C 2.0 DOSconfiguration file for DMAKE
  1205. X#    It simply modifies the values of SRC, and checks to see if
  1206. X#    OSENVIRONMENT is defined.  If so it includes the appropriate
  1207. X#    config.mk file.
  1208. X#
  1209. X# It also sets the values of .SOURCE.c and .SOURCE.h to include the local
  1210. X# directory.
  1211. X#
  1212. Xosrdir := $(OS)$(DIRSEPSTR)$(OSRELEASE)
  1213. X
  1214. X# tlink does not know how to deal with tmpfiles that have e:\ in their path.
  1215. XTMPDIR :=
  1216. X.EXPORT : TMPDIR
  1217. X
  1218. X# Definition of macros for library, and C startup code.
  1219. X
  1220. X# The following sources are required for TURBO C 2.0
  1221. XSRC += tempnam.c
  1222. X
  1223. X.SOURCE.c : $(osrdir)
  1224. X.SOURCE.h : $(osrdir)
  1225. X
  1226. X# Local configuration modifications for CFLAGS, there's local BSD includes
  1227. X# too.
  1228. XCFLAGS += -I$(osrdir) -D__STDC__=1 -DM_I86=1
  1229. X
  1230. X# See if we modify anything in the lower levels.
  1231. X.IF $(OSENVIRONMENT) != $(NULL)
  1232. X   .INCLUDE .IGNORE : $(osrdir)$(DIRSEPSTR)$(OSENVIRONMENT)$(DIRSEPSTR)config.mk
  1233. X.END
  1234. SHAR_EOF
  1235. chmod 0640 msdos/mscdos/config.mk || echo "restore of msdos/mscdos/config.mk fails"
  1236. echo "x - extracting msdos/mscdos/config.h (Text)"
  1237. sed 's/^X//' << 'SHAR_EOF' > msdos/mscdos/config.h &&
  1238. X/* RCS      -- $Header$
  1239. X-- SYNOPSIS -- Configurarion include file.
  1240. X-- 
  1241. X-- DESCRIPTION
  1242. X--     There is one of these for each specific machine configuration.
  1243. X--    It can be used to further tweek the machine specific sources
  1244. X--    so that they compile.
  1245. X--
  1246. X-- AUTHOR
  1247. X--      Dennis Vadura, dvadura@watdragon.uwaterloo.ca
  1248. X--      CS DEPT, University of Waterloo, Waterloo, Ont., Canada
  1249. X--
  1250. X-- COPYRIGHT
  1251. X--      Copyright (c) 1990 by Dennis Vadura.  All rights reserved.
  1252. X-- 
  1253. X--      This program is free software; you can redistribute it and/or
  1254. X--      modify it under the terms of the GNU General Public License
  1255. X--      (version 1), as published by the Free Software Foundation, and
  1256. X--      found in the file 'LICENSE' included with this distribution.
  1257. X-- 
  1258. X--      This program is distributed in the hope that it will be useful,
  1259. X--      but WITHOUT ANY WARRANTY; without even the implied warrant of
  1260. X--      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  1261. X--      GNU General Public License for more details.
  1262. X-- 
  1263. X--      You should have received a copy of the GNU General Public License
  1264. X--      along with this program;  if not, write to the Free Software
  1265. X--      Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  1266. X--
  1267. X-- LOG
  1268. X--     $Log$
  1269. X*/
  1270. X
  1271. X/* define this for configurations that don't have the coreleft function
  1272. X * so that the code compiles.  To my knowledge coreleft exists only on
  1273. X * Turbo C, but it is needed here since the function is used in many debug
  1274. X * macros. */
  1275. X#define coreleft() 0L
  1276. X
  1277. X/*No parallelism in DOS so don't need to explode the graph. */
  1278. X#define Explode_prq(a,b,c)
  1279. SHAR_EOF
  1280. chmod 0640 msdos/mscdos/config.h || echo "restore of msdos/mscdos/config.h fails"
  1281. echo "x - extracting msdos/dirbrk.c (Text)"
  1282. sed 's/^X//' << 'SHAR_EOF' > msdos/dirbrk.c &&
  1283. X/* RCS      -- $Header: /u2/dvadura/src/generic/dmake/src/msdos/RCS/dirbrk.c,v 1.1 90/07/19 14:10:42 dvadura Exp $
  1284. X-- SYNOPSIS -- define the directory separator string.
  1285. X-- 
  1286. X-- DESCRIPTION
  1287. X--     Define this string for any character that may appear in a path name
  1288. X--    and can be used as a directory separator.
  1289. X--
  1290. X-- AUTHOR
  1291. X--      Dennis Vadura, dvadura@watdragon.uwaterloo.ca
  1292. X--      CS DEPT, University of Waterloo, Waterloo, Ont., Canada
  1293. X--
  1294. X-- COPYRIGHT
  1295. X--      Copyright (c) 1990 by Dennis Vadura.  All rights reserved.
  1296. X-- 
  1297. X--      This program is free software; you can redistribute it and/or
  1298. X--      modify it under the terms of the GNU General Public License
  1299. X--      (version 1), as published by the Free Software Foundation, and
  1300. X--      found in the file 'LICENSE' included with this distribution.
  1301. X-- 
  1302. X--      This program is distributed in the hope that it will be useful,
  1303. X--      but WITHOUT ANY WARRANTY; without even the implied warrant of
  1304. X--      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  1305. SHAR_EOF
  1306. echo "End of part 6"
  1307. echo "File msdos/dirbrk.c is continued in part 7"
  1308. echo "7" > s2_seq_.tmp
  1309. exit 0
  1310.  
  1311.