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

  1. Newsgroups: comp.sources.misc
  2. From: Dennis Vadura <dvadura@watdragon.waterloo.edu>
  3. Subject:  v20i085:  dmake - dmake version 3.7, Patch02j/12
  4. Message-ID: <1991Jun29.222746.4642@sparky.IMD.Sterling.COM>
  5. X-Md4-Signature: 47964ade42bdf5bfd89993d25a8e778a
  6. Date: Sat, 29 Jun 1991 22:27:46 GMT
  7. Approved: kent@sparky.imd.sterling.com
  8.  
  9. Submitted-by: Dennis Vadura <dvadura@watdragon.waterloo.edu>
  10. Posting-number: Volume 20, Issue 85
  11. Archive-name: dmake/patch02j
  12. Patch-To: dmake: Volume 19, Issue 22-58
  13.  
  14. #!/bin/sh
  15. # this is dp2.09 (part 9 of a multipart archive)
  16. # do not concatenate these parts, unpack them in order with /bin/sh
  17. # file dm37p2 continued
  18. #
  19. if test ! -r _shar_seq_.tmp; then
  20.     echo 'Please unpack part 1 first!'
  21.     exit 1
  22. fi
  23. (read Scheck
  24.  if test "$Scheck" != 9; then
  25.     echo Please unpack part "$Scheck" next!
  26.     exit 1
  27.  else
  28.     exit 0
  29.  fi
  30. ) < _shar_seq_.tmp || exit 1
  31. if test ! -f _shar_wnt_.tmp; then
  32.     echo 'x - still skipping dm37p2'
  33. else
  34. echo 'x - continuing file dm37p2'
  35. sed 's/^X//' << 'SHAR_EOF' >> 'dm37p2' &&
  36. XX
  37. XX    I considered using chdir() to ascend the hierarchy, followed by a
  38. XX    final chdir() to the path being returned by getcwd() to restore the
  39. XX    location, but decided that error recovery was too difficult that way.
  40. XX    The algorithm I settled on was inspired by my rewrite of the "pwd"
  41. XX    utility, combined with the dotdots[] array trick from the SVR2 shell.
  42. X*/
  43. X#define XPG2    /* define to support obsolete XPG2-mandated feature */
  44. XX
  45. XX
  46. X#include    <sys/types.h>
  47. X#include    <sys/stat.h>
  48. XX
  49. X#ifdef M_XENIX
  50. X# include        <sys/ndir.h>
  51. X# define dirent direct
  52. X#else
  53. X# include        <dirent.h>
  54. X#endif
  55. XX
  56. X#include    <errno.h>
  57. X#include    <string.h>
  58. XX
  59. Xtypedef char    *pointer;        /* (void *) if you have it */
  60. XX
  61. Xextern void    free();
  62. Xextern pointer    malloc();
  63. Xextern int    fstat(), stat();
  64. XX
  65. Xextern int    errno;            /* normally done by <errno.h> */
  66. XX
  67. X#ifndef NULL
  68. X#define    NULL    0            /* amorphous null pointer constant */
  69. X#endif
  70. XX
  71. X#ifndef NAME_MAX
  72. X#define    NAME_MAX    255        /* maximum directory entry size */
  73. X#endif
  74. XX
  75. XX
  76. Xchar    *
  77. Xgetcwd( buf, size )            /* returns pointer to CWD pathname */
  78. XX    char        *buf;        /* where to put name (NULL to malloc) */
  79. XX    int        size;        /* size of buf[] or malloc()ed memory */
  80. XX    {
  81. XX    static char    dotdots[] =
  82. X"../../../../../../../../../../../../../../../../../../../../../../../../../..";
  83. XX    char        *dotdot;    /* -> dotdots[.], right to left */
  84. XX    DIR        *dirp;        /* -> parent directory stream */
  85. XX    struct dirent    *dir;        /* -> directory entry */
  86. XX    struct stat    stat1,
  87. XX            stat2;        /* info from stat() */
  88. XX    struct stat    *d = &stat1;    /* -> info about "." */
  89. XX    struct stat    *dd = &stat2;    /* -> info about ".." */
  90. XX    register char    *buffer;    /* local copy of buf, or malloc()ed */
  91. XX    char        *bufend;    /* -> buffer[size] */
  92. XX    register char    *endp;        /* -> end of reversed string */
  93. XX    register char    *dname;        /* entry name ("" for root) */
  94. XX    int        serrno = errno;    /* save entry errno */
  95. XX
  96. XX    if ( buf != NULL && size <= 0
  97. X#ifndef XPG2
  98. XX      || buf == NULL
  99. X#endif
  100. XX       )    {
  101. XX        errno = EINVAL;        /* invalid argument */
  102. XX        return NULL;
  103. XX        }
  104. XX
  105. XX    buffer = buf;
  106. X#ifdef XPG2
  107. XX    if ( buf == NULL        /* wants us to malloc() the string */
  108. XX      && (buffer = (char *) malloc( (unsigned) size )) == NULL
  109. XX    /* XXX -- actually should probably not pay attention to "size" arg */
  110. XX       )    {
  111. XX        errno = ENOMEM;        /* cannot malloc() specified size */
  112. XX        return NULL;
  113. XX        }
  114. X#endif
  115. XX
  116. XX    if ( stat( ".", dd ) != 0 )    /* prime the pump */
  117. XX        goto error;        /* errno already set */
  118. XX
  119. XX    endp = buffer;            /* initially, empty string */
  120. XX    bufend = &buffer[size];
  121. XX
  122. XX    for ( dotdot = &dotdots[sizeof dotdots]; dotdot != dotdots; )
  123. XX        {
  124. XX        dotdot -= 3;        /* include one more "/.." section */
  125. XX                    /* (first time is actually "..") */
  126. XX
  127. XX        /* swap stat() info buffers */
  128. XX        {
  129. XX        register struct stat    *temp = d;
  130. XX
  131. XX        d = dd;            /* new current dir is old parent dir */
  132. XX        dd = temp;
  133. XX        }
  134. XX
  135. XX        if ( (dirp = opendir( dotdot )) == NULL )    /* new parent */
  136. XX            goto error;    /* errno already set */
  137. XX
  138. XX        if ( fstat( dirp->dd_fd, dd ) != 0 )
  139. XX            {
  140. XX            serrno = errno;    /* set by fstat() */
  141. XX            (void)closedir( dirp );
  142. XX            errno = serrno;    /* in case closedir() clobbered it */
  143. XX            goto error;
  144. XX            }
  145. XX
  146. XX        if ( d->st_dev == dd->st_dev )
  147. XX            {        /* not crossing a mount point */
  148. XX            if ( d->st_ino == dd->st_ino )
  149. XX                {    /* root directory */
  150. XX                dname = "";
  151. XX                goto append;
  152. XX                }
  153. XX
  154. XX            do
  155. XX                if ( (dir = readdir( dirp )) == NULL )
  156. XX                    {
  157. XX                    (void)closedir( dirp );
  158. XX                    errno = ENOENT;    /* missing entry */
  159. XX                    goto error;
  160. XX                    }
  161. XX            while ( dir->d_ino != d->st_ino );
  162. XX            }
  163. XX        else    {        /* crossing a mount point */
  164. XX            struct stat    t;    /* info re. test entry */
  165. XX            char        name[sizeof dotdots + 1 + NAME_MAX];
  166. XX
  167. XX            (void)strcpy( name, dotdot );
  168. XX            dname = &name[strlen( name )];
  169. XX            *dname++ = '/';
  170. XX
  171. XX            do    {
  172. XX                if ( (dir = readdir( dirp )) == NULL )
  173. XX                    {
  174. XX                    (void)closedir( dirp );
  175. XX                    errno = ENOENT;    /* missing entry */
  176. XX                    goto error;
  177. XX                    }
  178. XX
  179. XX                (void)strcpy( dname, dir->d_name );
  180. XX                /* must fit if NAME_MAX is not a lie */
  181. XX                }
  182. XX            while ( stat( name, &t ) != 0
  183. XX                 || t.st_ino != d->st_ino
  184. XX                 || t.st_dev != d->st_dev
  185. XX                  );
  186. XX            }
  187. XX
  188. XX        dname = dir->d_name;
  189. XX
  190. XX        /* append "/" and reversed dname string onto buffer */
  191. XX    append:
  192. XX        if ( endp != buffer    /* avoid trailing / in final name */
  193. XX          || dname[0] == '\0'    /* but allow "/" when CWD is root */
  194. XX           )
  195. XX            *endp++ = '/';
  196. XX
  197. XX        {
  198. XX        register char    *app;    /* traverses dname string */
  199. XX
  200. XX        for ( app = dname; *app != '\0'; ++app )
  201. XX            ;
  202. XX
  203. XX        if ( app - dname >= bufend - endp )
  204. XX            {
  205. XX            (void)closedir( dirp );
  206. XX            errno = ERANGE;    /* won't fit allotted space */
  207. XX            goto error;
  208. XX            }
  209. XX
  210. XX        while ( app != dname )
  211. XX            *endp++ = *--app;
  212. XX        }
  213. XX
  214. XX        (void)closedir( dirp );
  215. XX
  216. XX        if ( dname[0] == '\0' )    /* reached root; wrap it up */
  217. XX            {
  218. XX            register char    *startp;    /* -> buffer[.] */
  219. XX
  220. XX            *endp = '\0';    /* plant null terminator */
  221. XX
  222. XX            /* straighten out reversed pathname string */
  223. XX            for ( startp = buffer; --endp > startp; ++startp )
  224. XX                {
  225. XX                char    temp = *endp;
  226. XX
  227. XX                *endp = *startp;
  228. XX                *startp = temp;
  229. XX                }
  230. XX
  231. XX            errno = serrno;    /* restore entry errno */
  232. XX            /* XXX -- if buf==NULL, realloc here? */
  233. XX            return buffer;
  234. XX            }
  235. XX        }
  236. XX
  237. XX    errno = ENOMEM;            /* actually, algorithm failure */
  238. XX
  239. XX    error:
  240. XX    if ( buf == NULL )
  241. XX        free( (pointer)buffer );
  242. XX
  243. XX    return NULL;
  244. XX    }
  245. XX
  246. XSHAR_EOF
  247. Xchmod 0440 unix/sysvr3/pwd/getcwd.c ||
  248. Xecho 'restore of unix/sysvr3/pwd/getcwd.c failed'
  249. XWc_c="`wc -c < 'unix/sysvr3/pwd/getcwd.c'`"
  250. Xtest 5834 -eq "$Wc_c" ||
  251. X    echo 'unix/sysvr3/pwd/getcwd.c: original size 5834, current size' "$Wc_c"
  252. Xfi
  253. X# ============= unix/sysvr3/pwd/make.sh ==============
  254. Xif test -f 'unix/sysvr3/pwd/make.sh' -a X"$1" != X"-c"; then
  255. X    echo 'x - skipping unix/sysvr3/pwd/make.sh (File already exists)'
  256. Xelse
  257. Xecho 'x - extracting unix/sysvr3/pwd/make.sh (Text)'
  258. Xsed 's/^X//' << 'SHAR_EOF' > 'unix/sysvr3/pwd/make.sh' &&
  259. Xmkdir objects
  260. Xcc -c -I. -Iunix -Iunix/sysvr3 -Iunix/sysvr3/pwd -O infer.c
  261. Xmv infer.o objects
  262. Xcc -c -I. -Iunix -Iunix/sysvr3 -Iunix/sysvr3/pwd -O make.c
  263. Xmv make.o objects
  264. Xcc -c -I. -Iunix -Iunix/sysvr3 -Iunix/sysvr3/pwd -O stat.c
  265. Xmv stat.o objects
  266. Xcc -c -I. -Iunix -Iunix/sysvr3 -Iunix/sysvr3/pwd -O expand.c
  267. Xmv expand.o objects
  268. Xcc -c -I. -Iunix -Iunix/sysvr3 -Iunix/sysvr3/pwd -O dmstring.c
  269. Xmv dmstring.o objects
  270. Xcc -c -I. -Iunix -Iunix/sysvr3 -Iunix/sysvr3/pwd -O hash.c
  271. Xmv hash.o objects
  272. Xcc -c -I. -Iunix -Iunix/sysvr3 -Iunix/sysvr3/pwd -O dag.c
  273. Xmv dag.o objects
  274. Xcc -c -I. -Iunix -Iunix/sysvr3 -Iunix/sysvr3/pwd -O dmake.c
  275. Xmv dmake.o objects
  276. Xcc -c -I. -Iunix -Iunix/sysvr3 -Iunix/sysvr3/pwd -O path.c
  277. Xmv path.o objects
  278. Xcc -c -I. -Iunix -Iunix/sysvr3 -Iunix/sysvr3/pwd -O imacs.c
  279. Xmv imacs.o objects
  280. Xcc -c -I. -Iunix -Iunix/sysvr3 -Iunix/sysvr3/pwd -O sysintf.c
  281. Xmv sysintf.o objects
  282. Xcc -c -I. -Iunix -Iunix/sysvr3 -Iunix/sysvr3/pwd -O parse.c
  283. Xmv parse.o objects
  284. Xcc -c -I. -Iunix -Iunix/sysvr3 -Iunix/sysvr3/pwd -O getinp.c
  285. Xmv getinp.o objects
  286. Xcc -c -I. -Iunix -Iunix/sysvr3 -Iunix/sysvr3/pwd -O quit.c
  287. Xmv quit.o objects
  288. Xcc -c -I. -Iunix -Iunix/sysvr3 -Iunix/sysvr3/pwd -O state.c
  289. Xmv state.o objects
  290. Xcc -c -I. -Iunix -Iunix/sysvr3 -Iunix/sysvr3/pwd -O basename.c
  291. Xmv basename.o objects
  292. Xcc -c -I. -Iunix -Iunix/sysvr3 -Iunix/sysvr3/pwd -O dmdump.c
  293. Xmv dmdump.o objects
  294. Xcc -c -I. -Iunix -Iunix/sysvr3 -Iunix/sysvr3/pwd -O macparse.c
  295. Xmv macparse.o objects
  296. Xcc -c -I. -Iunix -Iunix/sysvr3 -Iunix/sysvr3/pwd -O rulparse.c
  297. Xmv rulparse.o objects
  298. Xcc -c -I. -Iunix -Iunix/sysvr3 -Iunix/sysvr3/pwd -O percent.c
  299. Xmv percent.o objects
  300. Xcc -c -I. -Iunix -Iunix/sysvr3 -Iunix/sysvr3/pwd -O function.c
  301. Xmv function.o objects
  302. Xcc -c -I. -Iunix -Iunix/sysvr3 -Iunix/sysvr3/pwd -O unix/arlib.c
  303. Xmv arlib.o objects
  304. Xcc -c -I. -Iunix -Iunix/sysvr3 -Iunix/sysvr3/pwd -O unix/dirbrk.c
  305. Xmv dirbrk.o objects
  306. Xcc -c -I. -Iunix -Iunix/sysvr3 -Iunix/sysvr3/pwd -O unix/rmprq.c
  307. Xmv rmprq.o objects
  308. Xcc -c -I. -Iunix -Iunix/sysvr3 -Iunix/sysvr3/pwd -O unix/ruletab.c
  309. Xmv ruletab.o objects
  310. Xcc -c -I. -Iunix -Iunix/sysvr3 -Iunix/sysvr3/pwd -O unix/runargv.c
  311. Xmv runargv.o objects
  312. Xcc -c -I. -Iunix -Iunix/sysvr3 -Iunix/sysvr3/pwd -O unix/sysvr3/pwd/getcwd.c
  313. Xmv getcwd.o objects
  314. Xcc  -o dmake  objects/infer.o objects/make.o objects/stat.o objects/expand.o objects/dmstring.o objects/hash.o objects/dag.o objects/dmake.o objects/path.o objects/imacs.o objects/sysintf.o objects/parse.o objects/getinp.o objects/quit.o objects/state.o objects/basename.o objects/dmdump.o objects/macparse.o objects/rulparse.o objects/percent.o objects/function.o objects/arlib.o objects/dirbrk.o objects/rmprq.o objects/ruletab.o objects/runargv.o objects/getcwd.o 
  315. Xcp unix/sysvr3/pwd/startup.mk startup.mk
  316. XSHAR_EOF
  317. Xchmod 0640 unix/sysvr3/pwd/make.sh ||
  318. Xecho 'restore of unix/sysvr3/pwd/make.sh failed'
  319. XWc_c="`wc -c < 'unix/sysvr3/pwd/make.sh'`"
  320. Xtest 2739 -eq "$Wc_c" ||
  321. X    echo 'unix/sysvr3/pwd/make.sh: original size 2739, current size' "$Wc_c"
  322. Xfi
  323. X# ============= unix/sysvr3/pwd/public.h ==============
  324. Xif test -f 'unix/sysvr3/pwd/public.h' -a X"$1" != X"-c"; then
  325. X    echo 'x - skipping unix/sysvr3/pwd/public.h (File already exists)'
  326. Xelse
  327. Xecho 'x - extracting unix/sysvr3/pwd/public.h (Text)'
  328. Xsed 's/^X//' << 'SHAR_EOF' > 'unix/sysvr3/pwd/public.h' &&
  329. X/* RCS      -- $Header$
  330. X-- WARNING  -- This file is AUTOMATICALLY GENERATED DO NOT EDIT IT
  331. X--
  332. X-- SYNOPSIS -- Local functions exported to be visible by others.
  333. X--
  334. X-- DESCRIPTION
  335. X--      This file is generated by 'genpub'.  Function declarations
  336. X--      that appear in this file are extracted by 'genpub' from
  337. X--      source files.  Any function in the source file whose definition
  338. X--      appears like:
  339. X--
  340. X--          PUBLIC return_type
  341. X--          function( arg_list );
  342. X--          type_expr1 arg1;
  343. X--          ...
  344. X--
  345. X--      has its definition extracted and a line of the form:
  346. X--
  347. X--          return_type function ANSI((type_expr1,type_expr2,...));
  348. X--
  349. X--      entered into the output file.
  350. X--
  351. X-- AUTHOR
  352. X--      Dennis Vadura, dvadura@watdragon.uwaterloo.ca
  353. X--      CS DEPT, University of Waterloo, Waterloo, Ont., Canada
  354. X--
  355. X-- COPYRIGHT
  356. X--      Copyright (c) 1990 by Dennis Vadura.  All rights reserved.
  357. X-- 
  358. X--      This program is free software; you can redistribute it and/or
  359. X--      modify it under the terms of the GNU General Public License
  360. X--      (version 1), as published by the Free Software Foundation, and
  361. X--      found in the file 'LICENSE' included with this distribution.
  362. X-- 
  363. X--      This program is distributed in the hope that it will be useful,
  364. X--      but WITHOUT ANY WARRANTY; without even the implied warrant of
  365. X--      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  366. X--      GNU General Public License for more details.
  367. X-- 
  368. X--      You should have received a copy of the GNU General Public License
  369. X--      along with this program;  if not, write to the Free Software
  370. X--      Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  371. X--
  372. X-- LOG
  373. X--     $Log$
  374. X*/
  375. XX
  376. X#ifndef _DMAKE_PUBLIC_h
  377. X#define _DMAKE_PUBLIC_h
  378. XX
  379. Xvoid Infer_recipe ANSI((CELLPTR, CELLPTR));
  380. Xint Make_targets ANSI(());
  381. Xint Exec_commands ANSI((CELLPTR));
  382. Xvoid Pop_dir ANSI((int));
  383. Xvoid Append_line ANSI((char *, int, FILE *, char *, int, int));
  384. Xvoid Stat_target ANSI((CELLPTR, int));
  385. Xchar * Expand ANSI((char *));
  386. Xchar * Apply_edit ANSI((char *, char *, char *, int, int));
  387. Xvoid Map_esc ANSI((char *));
  388. Xchar* Apply_modifiers ANSI((int, char *));
  389. Xchar* Tokenize ANSI((char *, char *));
  390. Xchar * _strjoin ANSI((char *, char *, int, int));
  391. Xchar * _stradd ANSI((char *, char *, int));
  392. Xchar * _strapp ANSI((char *, char *));
  393. Xchar * _strdup ANSI((char *));
  394. Xchar * _strpbrk ANSI((char *, char *));
  395. Xchar * _strspn ANSI((char *, char *));
  396. Xchar * _strstr ANSI((char *, char *));
  397. Xchar * _substr ANSI((char *, char *));
  398. Xuint16 Hash ANSI((char *, uint32 *));
  399. XHASHPTR Get_name ANSI((char *, HASHPTR *, int));
  400. XHASHPTR Search_table ANSI((HASHPTR *, char *, uint16 *, uint32 *));
  401. XHASHPTR Def_macro ANSI((char *, char *, int));
  402. XCELLPTR Def_cell ANSI((char *));
  403. XLINKPTR Add_prerequisite ANSI((CELLPTR, CELLPTR, int, int));
  404. Xvoid Clear_prerequisites ANSI((CELLPTR));
  405. Xint Test_circle ANSI((CELLPTR, int));
  406. XSTRINGPTR Def_recipe ANSI((char *, STRINGPTR, int, int));
  407. Xt_attr Rcp_attribute ANSI((char *));
  408. Xint main ANSI((int, char **));
  409. XFILE * Openfile ANSI((char *, int, int));
  410. XFILE * Closefile ANSI(());
  411. XFILE * Search_file ANSI((char *, char **));
  412. Xchar * Filename ANSI(());
  413. Xvoid No_ram ANSI(());
  414. Xint Usage ANSI((int));
  415. Xint Version ANSI(());
  416. Xchar * Get_suffix ANSI((char *));
  417. Xchar * Build_path ANSI((char *, char *));
  418. Xvoid Make_rules ANSI(());
  419. Xvoid Create_macro_vars ANSI(());
  420. Xtime_t Do_stat ANSI((char *, char *, char **));
  421. Xint Do_touch ANSI((char *, char *, char **));
  422. Xvoid Void_lib_cache ANSI((char *, char *));
  423. Xtime_t Do_time ANSI(());
  424. Xint Do_cmnd ANSI((char *, int, int, CELLPTR, int, int, int));
  425. Xchar ** Pack_argv ANSI((int, int, char *));
  426. Xchar * Read_env_string ANSI((char *));
  427. Xint Write_env_string ANSI((char *, char *));
  428. Xvoid ReadEnvironment ANSI(());
  429. Xvoid Catch_signals ANSI((void (*)()));
  430. Xvoid Clear_signals ANSI(());
  431. Xvoid Prolog ANSI((int, char* []));
  432. Xvoid Epilog ANSI((int));
  433. Xchar * Get_current_dir ANSI(());
  434. Xint Set_dir ANSI((char*));
  435. Xchar Get_switch_char ANSI(());
  436. XFILE* Get_temp ANSI((char **, char *, int));
  437. XFILE * Start_temp ANSI((char *, CELLPTR, char **));
  438. Xvoid Open_temp_error ANSI((char *, char *));
  439. Xvoid Link_temp ANSI((CELLPTR, FILE *, char *));
  440. Xvoid Close_temp ANSI((CELLPTR, FILE *));
  441. Xvoid Unlink_temp_files ANSI((CELLPTR));
  442. Xvoid Handle_result ANSI((int, int, int, CELLPTR));
  443. Xvoid Update_time_stamp ANSI((CELLPTR));
  444. Xvoid Parse ANSI((FILE *));
  445. Xint Get_line ANSI((char *, FILE *));
  446. Xchar * Do_comment ANSI((char *, char **, int));
  447. Xchar * Get_token ANSI((TKSTRPTR, char *, int));
  448. Xvoid Quit ANSI(());
  449. Xvoid Read_state ANSI(());
  450. Xvoid Write_state ANSI(());
  451. Xint Check_state ANSI((CELLPTR, STRINGPTR *, int));
  452. Xchar* basename ANSI((char *));
  453. Xvoid Dump ANSI(());
  454. Xvoid Dump_recipe ANSI((STRINGPTR));
  455. Xint Parse_macro ANSI((char *, int));
  456. Xint Macro_op ANSI((char *));
  457. Xint Parse_rule_def ANSI((int *));
  458. Xint Rule_op ANSI((char *));
  459. Xvoid Add_recipe_to_list ANSI((char *, int, int));
  460. Xvoid Bind_rules_to_targets ANSI((int));
  461. Xint Set_group_attributes ANSI((char *));
  462. XDFALINKPTR Match_dfa ANSI((char *));
  463. Xvoid Check_circle_dfa ANSI(());
  464. Xvoid Add_nfa ANSI((char *));
  465. Xchar * Exec_function ANSI((char *));
  466. Xtime_t seek_arch ANSI((char *, char *));
  467. Xint If_root_path ANSI((char *));
  468. Xvoid Remove_prq ANSI((CELLPTR));
  469. Xint runargv ANSI((CELLPTR, int, int, int, int, char *));
  470. Xint Wait_for_child ANSI((int, int));
  471. Xvoid Clean_up_processes ANSI(());
  472. XX
  473. X#endif
  474. XSHAR_EOF
  475. Xchmod 0640 unix/sysvr3/pwd/public.h ||
  476. Xecho 'restore of unix/sysvr3/pwd/public.h failed'
  477. XWc_c="`wc -c < 'unix/sysvr3/pwd/public.h'`"
  478. Xtest 5318 -eq "$Wc_c" ||
  479. X    echo 'unix/sysvr3/pwd/public.h: original size 5318, current size' "$Wc_c"
  480. Xfi
  481. X# ============= unix/sysvr3/pwd/startup.mk ==============
  482. Xif test -f 'unix/sysvr3/pwd/startup.mk' -a X"$1" != X"-c"; then
  483. X    echo 'x - skipping unix/sysvr3/pwd/startup.mk (File already exists)'
  484. Xelse
  485. Xecho 'x - extracting unix/sysvr3/pwd/startup.mk (Text)'
  486. Xsed 's/^X//' << 'SHAR_EOF' > 'unix/sysvr3/pwd/startup.mk' &&
  487. X# Generic UNIX DMAKE startup file.  Customize to suit your needs.
  488. X# Should work for both SYSV, and BSD 4.3
  489. X# See the documentation for a description of internally defined macros.
  490. X#
  491. X# Disable warnings for macros redefined here that were given
  492. X# on the command line.
  493. X__.SILENT := $(.SILENT)
  494. X.SILENT   := yes
  495. XX
  496. X# Configuration parameters for DMAKE startup.mk file
  497. X# Set these to NON-NULL if you wish to turn the parameter on.
  498. X_HAVE_RCS    := yes        # yes => RCS  is installed.
  499. X_HAVE_SCCS    := yes        # yes => SCCS is installed.
  500. XX
  501. X# Applicable suffix definitions
  502. XA := .a        # Libraries
  503. XE :=        # Executables
  504. XF := .f        # Fortran
  505. XO := .o        # Objects
  506. XP := .p        # Pascal
  507. XS := .s        # Assembler sources
  508. XV := ,v        # RCS suffix
  509. XX
  510. X# Recipe execution configurations
  511. XSHELL        := /bin/sh
  512. XSHELLFLAGS    := -ce
  513. XGROUPSHELL    := $(SHELL)
  514. XGROUPFLAGS    := 
  515. XSHELLMETAS    := |();&<>?*][$$:\\#`'"
  516. XGROUPSUFFIX    :=
  517. XDIVFILE         = $(TMPFILE)
  518. XX
  519. X# Standard C-language command names and flags
  520. XX   CPP       := /lib/cpp        # C-preprocessor
  521. XX   CC      := cc        # C-compiler and flags
  522. XX   CFLAGS  +=
  523. XX
  524. XX   AS      := as        # Assembler and flags
  525. XX   ASFLAGS += 
  526. XX
  527. XX   LD       = $(CC)        # Loader and flags
  528. XX   LDFLAGS +=
  529. XX   LDLIBS   =
  530. XX
  531. X# Definition of $(MAKE) macro for recursive makes.
  532. XX   MAKE = $(MAKECMD) $(MFLAGS)
  533. XX
  534. X# Definition of Print command for this system.
  535. XX   PRINT = lpr
  536. XX
  537. X# Language and Parser generation Tools and their flags
  538. XX   YACC      := yacc        # standard yacc
  539. XX   YFLAGS +=
  540. XX   YTAB      := y.tab        # yacc output files name stem.
  541. XX
  542. XX   LEX      := lex        # standard lex
  543. XX   LFLAGS +=
  544. XX   LEXYY  := lex.yy        # lex output file
  545. XX
  546. X# Other Compilers, Tools and their flags
  547. XX   PC    := pc            # pascal compiler
  548. XX   RC    := f77            # ratfor compiler
  549. XX   FC    := f77            # fortran compiler
  550. XX
  551. XX   CO       := co        # check out for RCS
  552. XX   COFLAGS += -q
  553. XX
  554. XX   AR     := ar            # archiver
  555. XX   ARFLAGS+= ruv
  556. XX
  557. XX   RM       := /bin/rm        # remove a file command
  558. XX   RMFLAGS +=
  559. XX
  560. X# Implicit generation rules for making inferences.
  561. X# We don't provide .yr or .ye rules here.  They're obsolete.
  562. X# Rules for making *$O
  563. XX   %$O : %.c ; $(CC) $(CFLAGS) -c $<
  564. XX   %$O : %$P ; $(PC) $(PFLAGS) -c $<
  565. XX   %$O : %$S ; $(AS) $(ASFLAGS) $<
  566. XX   %$O : %.cl ; class -c $<
  567. XX   %$O : %.e %.r %.F %$F
  568. XX    $(FC) $(RFLAGS) $(EFLAGS) $(FFLAGS) -c $<
  569. XX
  570. X# Executables
  571. XX   %$E : %$O ; $(LD) $(LDFLAGS) -o $@ $< $(LDLIBES)
  572. XX
  573. X# lex and yacc rules
  574. XX   %.c : %.y ; $(YACC)  $(YFLAGS) $<; mv $(YTAB).c $@
  575. XX   %.c : %.l ; $(LEX)   $(LFLAGS) $<; mv $(LEXYY).c $@
  576. XX
  577. X# This rule tells how to make *.out from it's immediate list of prerequisites
  578. X# UNIX only.
  579. XX   %.out :; $(LD) $(LDFLAGS) -o $@ $^ $(LDLIBS)
  580. XX
  581. X# RCS support
  582. X.IF $(_HAVE_RCS)
  583. XX   % : %$V $$(@:d)RCS/$$(@:f)$V;- $(CO) $(COFLAGS) $@
  584. XX   .NOINFER : %$V $$(@:d)RCS/$$(@:f)$V
  585. X.END
  586. XX
  587. X# SCCS support
  588. X.IF $(_HAVE_SCCS)
  589. XX   % : s.% ; get $@
  590. XX   .NOINFER : s.%
  591. X.END
  592. XX
  593. X# Recipe to make archive files.
  594. X%$A :
  595. X[
  596. XX   $(AR) $(ARFLAGS) $@ $?
  597. XX   $(RM) $(RMFLAGS) $?
  598. XX   ranlib $@
  599. X]
  600. XX
  601. X# DMAKE uses this recipe to remove intermediate targets
  602. X.REMOVE :; $(RM) -f $<
  603. XX
  604. X# AUGMAKE extensions for SYSV compatibility
  605. X@B = $(@:b)
  606. X@D = $(@:d)
  607. X@F = $(@:f)
  608. X*B = $(*:b)
  609. X*D = $(*:d)
  610. X*F = $(*:f)
  611. X<B = $(<:b)
  612. X<D = $(<:d)
  613. X<F = $(<:f)
  614. X?B = $(?:b)
  615. X?F = $(?:f)
  616. X?D = $(?:d)
  617. XX
  618. X# Turn warnings back to previous setting.
  619. X.SILENT := $(__.SILENT)
  620. XX
  621. X# Local startup file if any
  622. X.INCLUDE .IGNORE: "_startup.mk"
  623. XSHAR_EOF
  624. Xchmod 0640 unix/sysvr3/pwd/startup.mk ||
  625. Xecho 'restore of unix/sysvr3/pwd/startup.mk failed'
  626. XWc_c="`wc -c < 'unix/sysvr3/pwd/startup.mk'`"
  627. Xtest 3221 -eq "$Wc_c" ||
  628. X    echo 'unix/sysvr3/pwd/startup.mk: original size 3221, current size' "$Wc_c"
  629. Xfi
  630. X
  631. X
  632. X# Now create the file of patches and apply patch appropriately
  633. X# This is a shell archive (produced by shar 3.49)
  634. X# To extract the files from this archive, save it to a file, remove
  635. X# everything above the "!/bin/sh" line above, and type "sh file_name".
  636. X#
  637. X# made 06/28/1991 13:28 UTC by dvadura@watdragon
  638. X# Source directory /u2/dvadura/src/generic/dmake
  639. X#
  640. X# existing files will NOT be overwritten unless -c is specified
  641. X#
  642. X# This shar contains:
  643. X# length  mode       name
  644. X# ------ ---------- ------------------------------------------
  645. X#  88895 -rw-r----- _patches
  646. X#
  647. X# ============= _patches ==============
  648. Xif test -f '_patches' -a X"$1" != X"-c"; then
  649. X    echo 'x - skipping _patches (File already exists)'
  650. Xelse
  651. Xecho 'x - extracting _patches (Text)'
  652. Xsed 's/^X//' << 'SHAR_EOF' > '_patches' &&
  653. X*** /u2/dvadura/src/generic/dmake/dmake37-p1/vextern.h    Mon May  6 15:23:41 1991
  654. X--- vextern.h    Tue Jun 25 16:30:07 1991
  655. X***************
  656. X*** 1,4 ****
  657. X! /* RCS      -- $Header: /u2/dvadura/src/generic/dmake/src/RCS/vextern.h,v 1.1 91/05/06 15:23:39 dvadura Exp $
  658. XX  -- SYNOPSIS -- global variable declarations.
  659. XX  -- 
  660. XX  -- DESCRIPTION
  661. X--- 1,4 ----
  662. X! /* RCS      -- $Header: /u2/dvadura/src/generic/dmake/src/RCS/vextern.h,v 1.2 91/06/25 16:29:56 dvadura Exp $
  663. XX  -- SYNOPSIS -- global variable declarations.
  664. XX  -- 
  665. XX  -- DESCRIPTION
  666. X***************
  667. X*** 29,34 ****
  668. X--- 29,37 ----
  669. XX  --
  670. XX  -- LOG
  671. XX  --     $Log:    vextern.h,v $
  672. X+  * Revision 1.2  91/06/25  16:29:56  dvadura
  673. X+  * Added Notabs global flag.
  674. X+  * 
  675. XX   * Revision 1.1  91/05/06  15:23:39  dvadura
  676. XX   * dmake Release Version 3.7
  677. XX   * 
  678. X***************
  679. X*** 87,92 ****
  680. X--- 90,96 ----
  681. XX  EXTERN    char    *Augmake;    /* -A */
  682. XX  EXTERN  char    Comment;    /* -c */
  683. XX  EXTERN    char    Get_env;    /* -e or -E */
  684. X+ EXTERN  char*   Notabs;        /* -B */
  685. XX  EXTERN    int    Continue;    /* -k */
  686. XX  EXTERN    int    Force;        /* -u */
  687. XX  EXTERN    int    Listing;    /* -p */
  688. X*** /u2/dvadura/src/generic/dmake/dmake37-p1/unix/sysvr4/stdarg.h    Mon May  6 15:28:42 1991
  689. X--- unix/sysvr4/stdarg.h    Thu Jun 27 23:37:14 1991
  690. X***************
  691. X*** 3,8 ****
  692. X--- 3,11 ----
  693. XX     then this wouldn't be quite so awful. */
  694. XX  #ifdef __STDC__
  695. XX  #include "/usr/include/stdarg.h"
  696. X+ #ifndef va_dcl
  697. X+ #define va_dcl int va_alist
  698. X+ #endif
  699. XX  #else
  700. XX  /*
  701. XX   * stdarg.h
  702. X*** /u2/dvadura/src/generic/dmake/dmake37-p1/tos/runargv.c    Mon May  6 15:32:23 1991
  703. X--- tos/runargv.c    Thu Jun 27 23:35:15 1991
  704. X***************
  705. X*** 1,4 ****
  706. X! /* RCS      -- $Header: /u2/dvadura/src/generic/dmake/src/tos/RCS/runargv.c,v 1.1 91/05/06 15:32:22 dvadura Exp $
  707. XX  -- SYNOPSIS -- run a sub process.
  708. XX  -- 
  709. XX  -- DESCRIPTION
  710. X--- 1,4 ----
  711. X! /* RCS      -- $Header: /u2/dvadura/src/generic/dmake/src/tos/RCS/runargv.c,v 1.2 91/06/27 23:35:00 dvadura Exp $
  712. XX  -- SYNOPSIS -- run a sub process.
  713. XX  -- 
  714. XX  -- DESCRIPTION
  715. X***************
  716. X*** 27,32 ****
  717. X--- 27,35 ----
  718. XX  --
  719. XX  -- LOG
  720. XX  --     $Log:    runargv.c,v $
  721. X+  * Revision 1.2  91/06/27  23:35:00  dvadura
  722. X+  * Preserve the current directory accross a spawn call.
  723. X+  * 
  724. XX   * Revision 1.1  91/05/06  15:32:22  dvadura
  725. XX   * dmake Release Version 3.7
  726. XX   * 
  727. X***************
  728. X*** 52,61 ****
  729. X--- 55,70 ----
  730. XX  {
  731. XX     int status;
  732. XX     char **argv;
  733. X+    char path[MAX_PATH_LEN+1];
  734. XX  
  735. XX     argv = Pack_argv( group, shell, cmd );
  736. XX     _add_child(target, ignore);
  737. X+ 
  738. X+    /* save and restore current working directory across a spawn call */
  739. X+    strcpy(path, Get_current_dir());
  740. XX     status = spawnvp(P_WAIT, *argv, argv);
  741. X+    Set_dir(path);
  742. X+ 
  743. XX     if( status == -1 ) Error("%s: %s", argv[0], strerror(errno));
  744. XX     _finished_child(status);
  745. XX     if( last && !Doing_bang ) Update_time_stamp( target );
  746. X*** /u2/dvadura/src/generic/dmake/dmake37-p1/sysintf.c    Mon May  6 15:23:37 1991
  747. X--- sysintf.c    Tue Jun 25 16:29:42 1991
  748. X***************
  749. X*** 1,4 ****
  750. X! /* RCS      -- $Header: /u2/dvadura/src/generic/dmake/src/RCS/sysintf.c,v 1.1 91/05/06 15:23:35 dvadura Exp $
  751. XX  -- SYNOPSIS -- system independent interface
  752. XX  -- 
  753. XX  -- DESCRIPTION
  754. X--- 1,4 ----
  755. X! /* RCS      -- $Header: /u2/dvadura/src/generic/dmake/src/RCS/sysintf.c,v 1.2 91/06/25 16:29:24 dvadura Exp $
  756. XX  -- SYNOPSIS -- system independent interface
  757. XX  -- 
  758. XX  -- DESCRIPTION
  759. X***************
  760. X*** 63,68 ****
  761. X--- 63,71 ----
  762. XX  --
  763. XX  -- LOG
  764. XX  --     $Log:    sysintf.c,v $
  765. X+  * Revision 1.2  91/06/25  16:29:24  dvadura
  766. X+  * Added a patch to support environments for Zortech C++ 2.1.
  767. X+  * 
  768. XX   * Revision 1.1  91/05/06  15:23:35  dvadura
  769. XX   * dmake Release Version 3.7
  770. XX   * 
  771. X***************
  772. X*** 288,293 ****
  773. X--- 291,306 ----
  774. XX  #endif
  775. XX     char **rsave;
  776. XX  
  777. X+ #if !defined(__ZTC__)
  778. X+ # define make_env()
  779. X+ # define free_env()
  780. X+ #else
  781. X+    void make_env();
  782. X+    void free_env();
  783. X+ #endif
  784. X+ 
  785. X+    make_env();
  786. X+ 
  787. XX     rsave    = Rule_tab;
  788. XX     Rule_tab = environ;
  789. XX     Readenv  = TRUE;
  790. X***************
  791. X*** 296,301 ****
  792. X--- 309,316 ----
  793. XX  
  794. XX     Readenv  = FALSE;
  795. XX     Rule_tab = rsave;
  796. X+ 
  797. X+    free_env();
  798. XX  }
  799. XX  
  800. XX  
  801. X*** /u2/dvadura/src/generic/dmake/dmake37-p1/rulparse.c    Mon May  6 15:23:28 1991
  802. X--- rulparse.c    Tue Jun 25 16:29:12 1991
  803. X***************
  804. X*** 1,4 ****
  805. X! /* RCS      -- $Header: /u2/dvadura/src/generic/dmake/src/RCS/rulparse.c,v 1.1 91/05/06 15:23:26 dvadura Exp $
  806. XX  -- SYNOPSIS -- perform semantic analysis on input
  807. XX  -- 
  808. XX  -- DESCRIPTION
  809. X--- 1,4 ----
  810. X! /* RCS      -- $Header: /u2/dvadura/src/generic/dmake/src/RCS/rulparse.c,v 1.2 91/06/25 16:28:27 dvadura Exp $
  811. XX  -- SYNOPSIS -- perform semantic analysis on input
  812. XX  -- 
  813. XX  -- DESCRIPTION
  814. X***************
  815. X*** 29,34 ****
  816. X--- 29,38 ----
  817. XX  --
  818. XX  -- LOG
  819. XX  --     $Log:    rulparse.c,v $
  820. X+  * Revision 1.2  91/06/25  16:28:27  dvadura
  821. X+  * Fixed a bug with handling attributes for inferred group recipes,
  822. X+  * and fixed a NULL pointer problem during %-meta DAG creation.
  823. X+  * 
  824. XX   * Revision 1.1  91/05/06  15:23:26  dvadura
  825. XX   * dmake Release Version 3.7
  826. XX   * 
  827. X***************
  828. X*** 61,67 ****
  829. XX  static LINKPTR    _sv_glb_prq = NIL(LINK);
  830. XX  static int      _sp_target  = FALSE;
  831. XX  static t_attr     _sv_attr;
  832. X- static t_attr     _sv_attro;
  833. XX  static int        _sv_flag;
  834. XX  static int      _sv_op;
  835. XX  static char      *_sv_setdir;
  836. X--- 65,70 ----
  837. X***************
  838. X*** 402,408 ****
  839. XX       CELLPTR ep;
  840. XX  
  841. XX       for( ep=_sv_edgel; ep != NIL(CELL); ep=ep->ce_link ) {
  842. X!         _set_attributes( _sv_attro, _sv_setdir, ep );
  843. XX          ep->ce_flag |= (F_TARGET|flag);
  844. XX  
  845. XX          if( _sv_rules != NIL(STRING) ) {
  846. X--- 405,411 ----
  847. XX       CELLPTR ep;
  848. XX  
  849. XX       for( ep=_sv_edgel; ep != NIL(CELL); ep=ep->ce_link ) {
  850. X!         _set_attributes( _sv_attr, _sv_setdir, ep );
  851. XX          ep->ce_flag |= (F_TARGET|flag);
  852. XX  
  853. XX          if( _sv_rules != NIL(STRING) ) {
  854. X***************
  855. X*** 799,805 ****
  856. XX      * rules if there are any.  However we must start the rule list with the
  857. XX      * rule specified as via the ; kludge, if there is one */
  858. XX     _sv_targets = targets;
  859. X!    _sv_attr    = _sv_attro = attr;
  860. XX     _sv_flag    = ((op & R_OP_BG) ? F_SINGLE : F_DEFAULT);
  861. XX        
  862. XX     DB_RETURN( RULE_SCAN );
  863. X--- 802,808 ----
  864. XX      * rules if there are any.  However we must start the rule list with the
  865. XX      * rule specified as via the ; kludge, if there is one */
  866. XX     _sv_targets = targets;
  867. X!    _sv_attr    = attr;
  868. XX     _sv_flag    = ((op & R_OP_BG) ? F_SINGLE : F_DEFAULT);
  869. XX        
  870. XX     DB_RETURN( RULE_SCAN );
  871. X***************
  872. X*** 947,953 ****
  873. XX        DB_PRINT( "%", ("Trying to match [%s]", edge?edge->CE_NAME:"(nil)") );
  874. XX  
  875. XX        if(    (!edge->ce_prq && !prereq)
  876. X!       || (   edge->ce_prq->cl_prq == prereq
  877. XX            && (   edge->ce_dir == _sv_setdir
  878. XX            || (   edge->ce_dir
  879. XX                && _sv_setdir
  880. X--- 950,957 ----
  881. XX        DB_PRINT( "%", ("Trying to match [%s]", edge?edge->CE_NAME:"(nil)") );
  882. XX  
  883. XX        if(    (!edge->ce_prq && !prereq)
  884. X!       || (   edge->ce_prq
  885. X!           && edge->ce_prq->cl_prq == prereq
  886. XX            && (   edge->ce_dir == _sv_setdir
  887. XX            || (   edge->ce_dir
  888. XX                && _sv_setdir
  889. X***************
  890. X*** 1095,1101 ****
  891. XX      The attribute flags set in attr. */
  892. XX  t_attr attr;
  893. XX  {
  894. X!    int flag;
  895. XX  
  896. XX     /* Some compilers can't handle a switch on a long, and t_attr is now a long
  897. XX      * integer on some systems.  foey! */
  898. X--- 1099,1105 ----
  899. XX      The attribute flags set in attr. */
  900. XX  t_attr attr;
  901. XX  {
  902. X!    t_attr flag;
  903. XX  
  904. XX     /* Some compilers can't handle a switch on a long, and t_attr is now a long
  905. XX      * integer on some systems.  foey! */
  906. X*** /u2/dvadura/src/generic/dmake/dmake37-p1/patchlvl.h    Fri Jun 28 08:21:31 1991
  907. X--- patchlvl.h    Tue Jun 25 16:27:57 1991
  908. X***************
  909. X*** 1,3 ****
  910. XX  /* dmake patch level, reset to 0 for each new version release. */
  911. XX  
  912. X! #define PATCHLEVEL 1
  913. X--- 1,3 ----
  914. XX  /* dmake patch level, reset to 0 for each new version release. */
  915. XX  
  916. X! #define PATCHLEVEL 2
  917. X*** /u2/dvadura/src/generic/dmake/dmake37-p1/parse.c    Mon May  6 15:23:21 1991
  918. X--- parse.c    Tue Jun 25 16:27:04 1991
  919. X***************
  920. X*** 1,4 ****
  921. X! /* RCS      -- $Header: /u2/dvadura/src/generic/dmake/src/RCS/parse.c,v 1.1 91/05/06 15:23:20 dvadura Exp $
  922. XX  -- SYNOPSIS -- parse the input, and perform semantic analysis
  923. XX  -- 
  924. XX  -- DESCRIPTION
  925. X--- 1,4 ----
  926. X! /* RCS      -- $Header: /u2/dvadura/src/generic/dmake/src/RCS/parse.c,v 1.2 91/06/25 16:26:50 dvadura Exp $
  927. XX  -- SYNOPSIS -- parse the input, and perform semantic analysis
  928. XX  -- 
  929. XX  -- DESCRIPTION
  930. X***************
  931. X*** 29,34 ****
  932. X--- 29,37 ----
  933. XX  --
  934. XX  -- LOG
  935. XX  --     $Log:    parse.c,v $
  936. X+  * Revision 1.2  91/06/25  16:26:50  dvadura
  937. X+  * Added kludge for -B flag.
  938. X+  * 
  939. XX   * Revision 1.1  91/05/06  15:23:20  dvadura
  940. XX   * dmake Release Version 3.7
  941. XX   * 
  942. X***************
  943. X*** 88,100 ****
  944. XX                       State = NORMAL_SCAN;
  945. XX                 }
  946. XX                 else {
  947. X!                   if( *Buffer == '\t' ) {
  948. XX                       Add_recipe_to_list( Buffer, FALSE, FALSE );
  949. XX                       rule = TRUE;
  950. XX                    }
  951. XX                    else if( *p == ']' )
  952. XX                       Fatal( "Found unmatched ']'" );
  953. X!                   else if( *Buffer && *p )
  954. XX               State = NORMAL_SCAN;
  955. XX                 }
  956. XX   
  957. X--- 91,104 ----
  958. XX                       State = NORMAL_SCAN;
  959. XX                 }
  960. XX                 else {
  961. X!                   if(    *Buffer == '\t'
  962. X!               || (Notabs && *Buffer == ' ') ) {
  963. XX                       Add_recipe_to_list( Buffer, FALSE, FALSE );
  964. XX                       rule = TRUE;
  965. XX                    }
  966. XX                    else if( *p == ']' )
  967. XX                       Fatal( "Found unmatched ']'" );
  968. X!                   else if( *Buffer && *p || (Notabs && !*Buffer && !*p))
  969. XX               State = NORMAL_SCAN;
  970. XX                 }
  971. XX   
  972. X*** /u2/dvadura/src/generic/dmake/dmake37-p1/os2/mscdos/mk60.cmd    Fri Jun 28 08:21:35 1991
  973. X--- os2/mscdos/mk60.cmd    Fri Jun 28 00:14:59 1991
  974. X***************
  975. X*** 1,32 ****
  976. XX  mkdir objects
  977. X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AC -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\infer.obj infer.c
  978. X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AC -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\make.obj make.c
  979. X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AC -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\stat.obj stat.c
  980. X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AC -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\expand.obj expand.c
  981. X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AC -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\dmstring.obj dmstring.c
  982. X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AC -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\hash.obj hash.c
  983. X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AC -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\dag.obj dag.c
  984. X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AC -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\dmake.obj dmake.c
  985. X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AC -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\path.obj path.c
  986. X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AC -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\imacs.obj imacs.c
  987. X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AC -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\sysintf.obj sysintf.c
  988. X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AC -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\parse.obj parse.c
  989. X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AC -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\getinp.obj getinp.c
  990. X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AC -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\quit.obj quit.c
  991. X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AC -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\state.obj state.c
  992. X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AC -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\basename.obj basename.c
  993. X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AC -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\dmdump.obj dmdump.c
  994. X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AC -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\macparse.obj macparse.c
  995. X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AC -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\rulparse.obj rulparse.c
  996. X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AC -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\percent.obj percent.c
  997. X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AC -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\function.obj function.c
  998. X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AC -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\ruletab.obj os2\ruletab.c
  999. X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AC -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\runargv.obj os2\runargv.c
  1000. X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AC -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\_chdir.obj os2\_chdir.c
  1001. X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AC -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\switchar.obj os2\switchar.c
  1002. X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AC -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\dirbrk.obj msdos\dirbrk.c
  1003. X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AC -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\arlib.obj msdos\arlib.c
  1004. X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AC -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\rmprq.obj unix\rmprq.c
  1005. X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AC -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\tempnam.obj os2\mscdos\tempnam.c
  1006. XX  cp os2\mscdos\startup.mk startup.mk
  1007. X! link @/tmp/mkAAA000196,dmake.exe,NUL.MAP,@/tmp/mkBAA000196/ST:8000 /exe /packc /batch,os2\dmake.def
  1008. X--- 1,32 ----
  1009. XX  mkdir objects
  1010. X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AL -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\infer.obj infer.c
  1011. X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AL -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\make.obj make.c
  1012. X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AL -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\stat.obj stat.c
  1013. X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AL -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\expand.obj expand.c
  1014. X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AL -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\dmstring.obj dmstring.c
  1015. X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AL -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\hash.obj hash.c
  1016. X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AL -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\dag.obj dag.c
  1017. X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AL -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\dmake.obj dmake.c
  1018. X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AL -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\path.obj path.c
  1019. X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AL -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\imacs.obj imacs.c
  1020. X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AL -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\sysintf.obj sysintf.c
  1021. X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AL -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\parse.obj parse.c
  1022. X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AL -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\getinp.obj getinp.c
  1023. X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AL -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\quit.obj quit.c
  1024. X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AL -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\state.obj state.c
  1025. X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AL -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\basename.obj basename.c
  1026. X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AL -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\dmdump.obj dmdump.c
  1027. X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AL -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\macparse.obj macparse.c
  1028. X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AL -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\rulparse.obj rulparse.c
  1029. X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AL -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\percent.obj percent.c
  1030. X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AL -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\function.obj function.c
  1031. X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AL -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\ruletab.obj os2\ruletab.c
  1032. X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AL -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\runargv.obj os2\runargv.c
  1033. X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AL -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\_chdir.obj os2\_chdir.c
  1034. X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AL -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\switchar.obj os2\switchar.c
  1035. X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AL -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\dirbrk.obj msdos\dirbrk.c
  1036. X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AL -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\arlib.obj msdos\arlib.c
  1037. X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AL -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\rmprq.obj unix\rmprq.c
  1038. X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AL -D__STDC__=1 -B2 C2L -WX -Osecgl -Gs -Foobjects\tempnam.obj os2\mscdos\tempnam.c
  1039. XX  cp os2\mscdos\startup.mk startup.mk
  1040. X! link /stack:8192 /exe /packc /batch @os2\mscdos\obj.rsp,dmake.exe,NUL.MAP;
  1041. X*** /u2/dvadura/src/generic/dmake/dmake37-p1/os2/mscdos/mk51.cmd    Fri Jun 28 08:21:37 1991
  1042. X--- os2/mscdos/mk51.cmd    Fri Jun 28 00:14:37 1991
  1043. X***************
  1044. X*** 1,61 ****
  1045. XX  mkdir objects
  1046. X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AC -D_MSC_VER=510 -B2 C2L -WX -Oscl -Gs infer.c
  1047. XX  mv infer.obj objects
  1048. X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AC -D_MSC_VER=510 -B2 C2L -WX -Oscl -Gs make.c
  1049. XX  mv make.obj objects
  1050. X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AC -D_MSC_VER=510 -B2 C2L -WX -Oscl -Gs stat.c
  1051. XX  mv stat.obj objects
  1052. X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AC -D_MSC_VER=510 -B2 C2L -WX -Oscl -Gs expand.c
  1053. XX  mv expand.obj objects
  1054. X! cl -c -I. -Ios2 -DOS2 -G2 -Ios2\mscdos -AC -D_MSC_VER=510 -B2 C2L -WX -Oscl -Gs dmstring.c
  1055. XX  mv dmstring.obj objects
  1056. SHAR_EOF
  1057. true || echo 'restore of dm37p2 failed'
  1058. fi
  1059. echo 'End of  part 9'
  1060. echo 'File dm37p2 is continued in part 10'
  1061. echo 10 > _shar_seq_.tmp
  1062. exit 0
  1063.  
  1064. exit 0 # Just in case...
  1065. -- 
  1066. Kent Landfield                   INTERNET: kent@sparky.IMD.Sterling.COM
  1067. Sterling Software, IMD           UUCP:     uunet!sparky!kent
  1068. Phone:    (402) 291-8300         FAX:      (402) 291-4362
  1069. Please send comp.sources.misc-related mail to kent@uunet.uu.net.
  1070.