Annotation of researchv10no/cmd/mk/src/builtins.c, revision 1.1

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: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.