|
|
1.1 root 1: /* @(#)rules.c 3.1 */
2: #include "defs"
3: /* DEFAULT RULES FOR UNIX */
4:
5: /*
6: * These are the internal rules that "make" trucks around with it at
7: * all times. One could completely delete this entire list and just
8: * conventionally define a global "include" makefile which had these
9: * rules in it. That would make the rules dynamically changeable
10: * without recompiling make. This file may be modified to local
11: * needs. There are currently two versions of this file with the
12: * source; namely, rules.c (which is the version running in Columbus)
13: * and pwbrules.c which is my attempt at satisfying the requirements
14: * of PWB systems.
15: * The makefile for make (make.mk) is parameterized for a different
16: * rules file. The macro $(RULES) defined in "make.mk" can be set
17: * to another file and when "make" is "made" the procedure will
18: * use the new file. The recommended way to do this is on the
19: * command line as follows:
20: * "make -f make.mk RULES=pwbrules"
21: */
22:
23: CHARSTAR builtin[] =
24: {
25: ".SUFFIXES: .o .c .c~ .y .y~ .l .l~ .s .s~ .sh .sh~ .h .h~",
26:
27: /* PRESET VARIABLES */
28: "MAKE=make",
29: "YACC=yacc",
30: "YFLAGS=",
31: "LEX=lex",
32: "LFLAGS=",
33: "LD=ld",
34: "LDFLAGS=-n",
35: "CC=cc",
36: "CFLAGS=-O",
37: "AS=as",
38: "ASFLAGS=",
39: "GET=get",
40: "GFLAGS=",
41:
42: /* SINGLE SUFFIX RULES */
43: ".c:",
44: "\t$(CC) $(CFLAGS) $(LDFLAGS) $< -o $@",
45: ".c~:",
46: "\t$(GET) $(GFLAGS) -p $< > $*.c",
47: "\t$(CC) $(CFLAGS) $(LDFLAGS) $*.c -o $*",
48: "\t-rm -f $*.c",
49: ".sh:",
50: "\tcp $< $@; chmod 0777 $@",
51: ".sh~:",
52: "\t$(GET) $(GFLAGS) -p $< > $*.sh",
53: "\tcp $*.sh $*; chmod 0777 $@",
54: "\t-rm -f $*.sh",
55:
56: /* DOUBLE SUFFIX RULES */
57: ".c.o:",
58: "\t$(CC) $(CFLAGS) -c $<",
59: ".c~.o:",
60: "\t$(GET) $(GFLAGS) -p $< > $*.c",
61: "\t$(CC) $(CFLAGS) -c $*.c",
62: "\t-rm -f $*.c",
63: ".c~.c:",
64: "\t$(GET) $(GFLAGS) -p $< > $*.c",
65: ".s.o:",
66: "\t$(AS) $(ASFLAGS) -o $@ $<",
67: ".s~.o:",
68: "\t$(GET) $(GFLAGS) -p $< > $*.s",
69: "\t$(AS) $(ASFLAGS) -o $*.o $*.s",
70: "\t-rm -f $*.s",
71: ".y.o:",
72: "\t$(YACC) $(YFLAGS) $<",
73: "\t$(CC) $(CFLAGS) -c y.tab.c",
74: "\trm y.tab.c",
75: "\tmv y.tab.o $@",
76: ".y~.o:",
77: "\t$(GET) $(GFLAGS) -p $< > $*.y",
78: "\t$(YACC) $(YFLAGS) $*.y",
79: "\t$(CC) $(CFLAGS) -c y.tab.c",
80: "\trm -f y.tab.c $*.y",
81: "\tmv y.tab.o $*.o",
82: ".l.o:",
83: "\t$(LEX) $(LFLAGS) $<",
84: "\t$(CC) $(CFLAGS) -c lex.yy.c",
85: "\trm lex.yy.c",
86: "\tmv lex.yy.o $@",
87: ".l~.o:",
88: "\t$(GET) $(GFLAGS) -p $< > $*.l",
89: "\t$(LEX) $(LFLAGS) $*.l",
90: "\t$(CC) $(CFLAGS) -c lex.yy.c",
91: "\trm -f lex.yy.c $*.l",
92: "\tmv lex.yy.o $*.o",
93: ".y.c :",
94: "\t$(YACC) $(YFLAGS) $<",
95: "\tmv y.tab.c $@",
96: ".y~.c :",
97: "\t$(GET) $(GFLAGS) -p $< > $*.y",
98: "\t$(YACC) $(YFLAGS) $*.y",
99: "\tmv y.tab.c $*.c",
100: "\t-rm -f $*.y",
101: ".l.c :",
102: "\t$(LEX) $<",
103: "\tmv lex.yy.c $@",
104: ".c.a:",
105: "\t$(CC) -c $(CFLAGS) $<",
106: "\tar rv $@ $*.o",
107: "\trm -f $*.o",
108: ".c~.a:",
109: "\t$(GET) $(GFLAGS) -p $< > $*.c",
110: "\t$(CC) -c $(CFLAGS) $*.c",
111: "\tar rv $@ $*.o",
112: "\trm -f $*.[co]",
113: ".s~.a:",
114: "\t$(GET) $(GFLAGS) -p $< > $*.s",
115: "\t$(AS) $(ASFLAGS) -o $*.o $*.s",
116: "\tar rv $@ $*.o",
117: "\t-rm -f $*.[so]",
118: ".h~.h:",
119: "\t$(GET) $(GFLAGS) -p $< > $*.h",
120: "markfile.o: markfile",
121: "\tA=@;echo \"static char _sccsid[] = \\042`grep $$A'(#)' markfile`\\042;\" > markfile.c",
122: "\tcc -c markfile.c",
123: "\trm -f markfile.c",
124: 0 };
125:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.