|
|
1.1 ! root 1: #include <stdio.h> ! 2: #include <string.h> ! 3: #include <dirent.h> ! 4: ! 5: char *skips[] = { ! 6: 0 ! 7: }; ! 8: ! 9: int ! 10: do_clean() ! 11: { ! 12: DIR *dir; ! 13: struct dirent *de; ! 14: remove("mklibnow.bat"); ! 15: ! 16: dir = opendir("lgcctmp"); ! 17: if (!dir) ! 18: return 0; ! 19: while ((de=readdir(dir))) ! 20: { ! 21: char buf[30]; ! 22: if (de->d_name[0] == '.') ! 23: continue; ! 24: sprintf(buf, "lgcctmp/%s", de->d_name); ! 25: unlink(buf); ! 26: } ! 27: closedir(dir); ! 28: return 0; ! 29: } ! 30: ! 31: int ! 32: main(int argc, char **argv) ! 33: { ! 34: char *cc = argv[1]; ! 35: char *csrc=argv[2]; ! 36: int i; ! 37: FILE *batfile; ! 38: FILE *cfile; ! 39: ! 40: if (argc > 1 && strcmp(argv[1], "-c")==0) ! 41: return do_clean(); ! 42: ! 43: _mkdir("lgcctmp", 0755); ! 44: ! 45: batfile = fopen("mklibnow.bat", "a"); ! 46: if (!batfile) ! 47: { ! 48: perror("mklibnow.bat"); ! 49: return 1; ! 50: } ! 51: /* fprintf(batfile, "@echo off\n"); */ ! 52: ! 53: for (i=3; i<argc; i++) ! 54: { ! 55: char dirname[30], basename[30], fullname[30], *bp; ! 56: int s; ! 57: for (s=0; skips[s]; s++) ! 58: if (strcmp(skips[s], argv[i]) == 0) ! 59: break; ! 60: if (skips[s]) ! 61: continue; ! 62: strcpy(dirname, "lgcctmp/"); ! 63: strcpy(basename, "\0"); ! 64: if (strncmp(argv[i], "_fix", 4)==0) ! 65: { ! 66: strcat(basename, "fx"); ! 67: strcat(basename, argv[i]+4); ! 68: } ! 69: else if (strncmp(argv[i], "_float", 4)==0) ! 70: { ! 71: strcat(basename, "flt"); ! 72: strcat(basename, argv[i]+6); ! 73: } ! 74: else ! 75: { ! 76: strcat(basename, argv[i]); ! 77: } ! 78: strcpy (fullname, dirname); ! 79: strcat (fullname, basename); ! 80: fprintf(batfile, "%s -c lgcctmp/%s.c\n", cc, basename); ! 81: fprintf(batfile, "copy %s.obj lgcctmp\n", basename); ! 82: bp = fullname + strlen(fullname); ! 83: strcpy(bp, ".c"); ! 84: cfile = fopen(fullname, "w"); ! 85: if (cfile) ! 86: { ! 87: *bp = 0; ! 88: fprintf(cfile, "#define L%s\n#include \"%s\"\n", argv[i], csrc); ! 89: fclose(cfile); ! 90: } ! 91: else ! 92: perror(fullname); ! 93: } ! 94: ! 95: fclose(batfile); ! 96: return 0; ! 97: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.