|
|
1.1 root 1: #include "mk.h"
2:
3: char *bltin[] =
4: {
5: "AS", "as",
6: "CC", "cc",
7: "CFLAGS", "",
8: "FC", "f77",
9: "FFLAGS", "",
10: "LDFLAGS", "",
11: "LEX", "lex",
12: "LFLAGS", "",
13: "NPROC", "1",
14: "NREP", "1",
15: "YACC", "yacc",
16: "YFLAGS", "",
17: "BUILTINS", "%.o: %.c\n\
18: $CC $CFLAGS -c $stem.c\n\
19: %.o: %.s\n\
20: $AS -o $stem.o $stem.s\n\
21: %.o: %.f\n\
22: $FC $FFLAGS -c $stem.f\n\
23: %.o: %.y\n\
24: $YACC $YFLAGS $stem.y && $CC $CFLAGS -c y.tab.c && mv y.tab.o $stem.o; rm y.tab.c\n\
25: %.o: %.l\n\
26: $LEX $LFLAGS -t $stem.l > /tmp/$$.c && $CC $CFLAGS -c /tmp/$$.c && mv /tmp/$$.o $stem.o; rm /tmp/$$.c\n",
27: "ENVIRON", "",
28: 0
29: };
30:
31: builtins()
32: {
33: register char **b;
34:
35: for(b = bltin; *b; b += 2)
36: setvar(b[0], strdup(b[1]));
37: }
38:
39: parsebuiltins()
40: {
41: char *s, *file;
42: int fd;
43: int n;
44:
45: s = symlook("BUILTINS", S_VAR, (char *)0)->value;
46: if(*s == 0)
47: return;
48: file = mktemp("/tmp/mkXXXXXX");
49: if((fd = creat(file, 0600)) < 0){
50: fprint(2, "mk: builtins in ");
51: perror(file);
52: Exit();
53: }
54: if(n = strlen(s)){
55: write(fd, s, n);
56: if(s[n-1] != '\n')
57: write(fd, "\n", 1);
58: }
59: close(fd);
60: parse("BUILTINS", open(file, 0), 0, 0);
61: unlink(file);
62: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.