home *** CD-ROM | disk | FTP | other *** search
/ Oakland CPM Archive / oakcpm.iso / sigm / vol179 / cutils.lbr / MAKSUB11.C < prev    next >
Text File  |  1985-02-09  |  3KB  |  107 lines

  1. /* BDS 'C' Programers Aid  makesub.c ver 1.1 by Cliff Mueller
  2.  
  3.   This program accepts as a command line argument the filename
  4. you are going to work with, as well as any link files you might
  5. want to use. The program then generates; W.SUB, C.SUB and S.SUB.
  6.    W.SUB merely invokes the Wordstar editor with your filename
  7.          and quits after exiting Wordstar.
  8.    C.SUB runs the 'C' compiler then the linker and quits.
  9.    S.SUB invokes Wordstar, then the 'C' compiler and linker,
  10.          then runs your program.
  11.  
  12. To implement:
  13. First get SUBMIT.COM or SUPSUB.COM on to the disk and rename
  14. it to S.COM. Then enter makesub [filename] <LINKFILE>
  15. <LINKFILE> <LINKFILE> and makesub wil generate the proper
  16. files for you. You may omit the link files if they are not
  17. needed. When entering filenames DO NOT enter the extent .C,
  18. or .CRL. The program will do that for you. After compiling
  19. and linking run the com file through NOBOOT to eliminate
  20. the warm booting. Finally, to save typing rename the
  21. maksub11.com file to ms.com.
  22.  
  23. To use:
  24. Enter s<space>w for the WS "filename.c".
  25. Enter s<space>c for the CC1 "filename.c" & L2 "filename".
  26. Enter s<space>s for both of above and to run the program.
  27.  
  28. Author's note:
  29. I have been using this version for about six months now and
  30. the only bug I've found is that if a compiler error appears
  31. its difficult to abort the sub file. The procedure I use is to
  32. use W first, then C to clear errors, then use S to fine tune
  33. the code. If you find any bugs or have any suggestions call
  34. me at 408-736-9401.
  35.             Happy Hacking
  36. */
  37.  
  38.  
  39. #include <bdscio.h>
  40. main(argc,argv)
  41. int    argc;
  42. char    *argv[];
  43.  
  44. {
  45. int    fd;
  46. char    obuf[BUFSIZ];
  47.  
  48. printf("makesub.c version 1.1 1/17/83 by Cliff Mueller\n\n");
  49. while(1)
  50. {
  51.     if (argc < 2)
  52.     {
  53.     printf("Usage: filename <linkfile> <linkfile> <linkfile>");
  54.     exit();
  55.     }
  56.  
  57.     if((fd = fcreat("w.sub",obuf))==ERROR) /* ws .sub file */
  58.     {
  59.     printf("\nCan't open w.sub");
  60.     exit();
  61.     }
  62.  
  63. fprintf(obuf,"WS %s.C\n",argv[1]);
  64. putc(CPMEOF,obuf);
  65. fflush(obuf);
  66. fclose(obuf);
  67.  
  68. if((fd = fcreat("c.sub",obuf))==ERROR) /* CC1 & L2 .sub file */
  69.     {
  70.     printf("\nCan't open c.sub");
  71.     exit();
  72.     }
  73. fprintf(obuf,"CC1 %s.C\n",argv[1]);
  74. if(argc==2) fprintf(obuf,"L2 %s\n",argv[1]);
  75. if(argc==3) fprintf(obuf,"L2 %s %s\n",argv[1],argv[2]);
  76. if(argc==4) fprintf(obuf,"L2 %s %s %s\n",argv[1],argv[2],argv[3]);
  77. if(argc==5) fprintf(obuf,"L2 %s %s %s %s\n",argv[1],argv[2],argv[3],argv[4]);
  78. putc(CPMEOF,obuf);
  79. fflush(obuf);
  80. fclose(obuf);
  81.  
  82. if((fd = fcreat("s.sub",obuf))==ERROR) /* CC1 & L2 $ program .sub file */
  83.     {
  84.     printf("\nCan't open s.sub");
  85.     exit();
  86.     }
  87. fprintf(obuf,"WS %s.C\n",argv[1]);
  88. fprintf(obuf,"CC1 %s.C\n",argv[1]);
  89. if(argc==2) fprintf(obuf,"L2 %s\n",argv[1]);
  90. if(argc==3) fprintf(obuf,"L2 %s %s\n",argv[1],argv[2]);
  91. if(argc==4) fprintf(obuf,"L2 %s %s %s\n",argv[1],argv[2],argv[3]);
  92. if(argc==5) fprintf(obuf,"L2 %s %s %s %s\n",argv[1],argv[2],argv[3],argv[4]);
  93. fprintf(obuf,"%s\n",argv[1]);
  94. putc(CPMEOF,obuf);
  95. fflush(obuf);
  96. fclose(obuf);
  97. printf("\n.SUB files now contain filename -> %s.C\n",argv[1]);
  98. if(argc==3)printf("link file = %s\n",argv[2]);
  99. if(argc==4)printf("link files = %s, %s\n",argv[2],argv[3]);
  100. if(argc==5)printf("link files = %s, %s, %s\n",argv[2],argv[3],argv[4]);
  101.  
  102. printf("The disc with the .SUB files must be on the 'A' drive.\n");
  103. exit();
  104. }
  105. }
  106.  
  107.