|
|
1.1 root 1: ###################################################################
2: ###################################################################
3: ### ###
4: ### ###
5: ### ***** * * ***** **** ***** **** ###
6: ### * ** * * * * * * ###
7: ### * * * * * *** **** *** *** ###
8: ### * * ** * * * * * * ###
9: ### ***** * * ***** * * ***** **** ###
10: ### ###
11: ### ###
12: ### A relational database management system ###
13: ### ###
14: ### RELEASE 7 ###
15: ### ###
16: ###################################################################
17: ###################################################################
18: #
19: # For information contact:
20: # Mike Stonebraker
21: # Dept. of Electrical Engineering &
22: # Computer Science
23: # University of California
24: # Berkeley, California 94720
25: #
26:
27: #
28: # @(#)Makefile 7.3 3/4/81
29: #
30:
31: #
32: # This makefile compiles most of the modules for the bulk of
33: # the INGRES system. The modules affected are those used by
34: # the "ingres" command itself. Stand-alone utilities such as
35: # "printr" and "restore" are in the 'support' directory.
36: #
37:
38: #
39: # Major recompilation will take place from this directory.
40: # There are several interesting entry points:
41: # allclean cleans all cruft from all
42: # directories.
43: # allinstall installs binaries in the INGRES
44: # bin directory.
45: # INSTALL=actual entry point called.
46: # sysinstall installs that subset of the INGRES
47: # system in public directories.
48: # SYSBIN= bin directory that the binaries
49: # should live in.
50: # SYSLIB= directory that libraries should live
51: # in (typically /usr/lib).
52: # for all of these:
53: # CPUTYPE=type of cpu you are running on, either PDP
54: # or VAX. Actually, this falacious; there are
55: # many other changes that must be made between
56: # the two machines (mostly in LDFLAGS entries,
57: # etc.). If `make' only had "conditional
58: # compilation"....
59: #
60: # Examples of usage:
61: # To recompile entire system from sources:
62: # make allclean allinstall
63: # To install INGRES for general users:
64: # make allinstall sysinstall
65: # To print the entire system:
66: # make install INSTALL=print
67: # {yes, this is cheating}
68: #
69:
70: #
71: # General system paths
72: #
73:
74: # the ingres subtree
75: INGRES= ../..
76: # the location of the system header files
77: H= ../h
78: # the residence of the system (internal) libraries
79: LIB= $(INGRES)/lib
80: # the residence of the system (internal) binaries
81: # this entry must be reflected in the process table
82: BIN= $(INGRES)/bin
83: # the location of user binaries
84: SYSBIN= /usr/local
85: # the location of user libraries (libq.a)
86: SYSLIB= /usr/local/lib
87: # the cputype, PDP or VAX
88: CPUTYPE=VAX
89:
90: PDPALL= monitor parser qrymod decomp alldbu
91: VAXALL= monitor vaxingres
92: ALLALL= monitor parser qrymod decomp alldbu vaxingres sysdump
93:
94: SRCS= monitor.c parser.c qrymod.c decomp.c alldbu.c vaxingres.c \
95: sysdump.c version.c
96:
97: #
98: # Libraries
99: #
100: # Libraries should be loaded in the order listed below.
101: #
102: CTLMOD= $(LIB)/ctlmod
103: IUTIL= $(LIB)/iutil
104: GUTIL= $(LIB)/gutil
105: MATH= -lm
106:
107: ALLLIB= $(CTLMOD) $(IUTIL) $(GUTIL)
108:
109: #
110: # Binaries
111: #
112: MONITOR=$(LIB)/monitor
113: PARSER= $(LIB)/parser
114: QRYMOD= $(LIB)/qrymod
115: DECOMP= $(LIB)/decomp
116: OVQP= $(LIB)/ovqp
117: DBULIB= $(LIB)/dbulib
118:
119: #
120: # Assorted commands & other garbage
121: #
122: CFLAGS= -I$H -O
123: LDFLAGS=-z
124: CHMOD= chmod
125: BINMODE=751
126: SUMODE= 4740
127: CP= cp
128: GET= sccs get
129: REL=
130: PR= print
131: VGRIND= csh /usr/ucb/vgrind
132: HEADER= Configuration Tables
133: MAKE= make CPUTYPE=$(CPUTYPE)
134: MFLAGS= -k
135: INSTALL=install
136:
137: #
138: # Recompile absolutely everything
139: #
140:
141: all: all$(CPUTYPE)
142:
143: allPDP: $(PDPALL)
144:
145: allVAX: $(VAXALL)
146:
147: allall: $(ALLALL)
148:
149: #
150: # And the processes....
151: #
152: # Proper loading order is:
153: # conf table
154: # library(s) for modules
155: # ctlmod library
156: # iutil library
157: # gutil library
158: #
159:
160: # Sysdump
161:
162: sysdump: version.o sysdump.o $(CTLMOD) $(ALLLIB)
163: $(CC) $(LDFLAGS) version.o [email protected] $(OTHERS) $(ALLLIB) -o $@
164: $(CHMOD) $(SUMODE) $@
165: ls -l $@; size $@
166:
167: # Monitor
168:
169: monitor: version.o monitor.o $(MONITOR) $(CTLMOD) $(IUTIL) $(GUTIL)
170: $(CC) $(LDFLAGS) version.o [email protected] $(OTHERS) $(MONITOR) $(CTLMOD) $(IUTIL) $(GUTIL) -o $@
171: $(CHMOD) $(BINMODE) $@
172: ls -l $@; size $@
173:
174: # Parser
175:
176: parser: version.o parser.o $(PARSER) $(ALLLIB)
177: $(CC) $(LDFLAGS) version.o [email protected] $(OTHERS) $(PARSER) $(ALLLIB) $(MATH) -o $@
178: $(CHMOD) $(SUMODE) $@
179: ls -l $@; size $@
180:
181: # Query Modification
182:
183: qrymod: version.o qrymod.o $(QRYMOD) $(ALLLIB)
184: $(CC) $(LDFLAGS) version.o [email protected] $(OTHERS) $(QRYMOD) $(ALLLIB) $(MATH) -o $@
185: $(CHMOD) $(SUMODE) $@
186: ls -l $@; size $@
187:
188: # Decomp/OVQP
189:
190: decomp: version.o decomp.o $(DECOMP) $(OVQP) $(ALLLIB)
191: $(CC) $(LDFLAGS) version.o [email protected] $(OTHERS) $(DECOMP) $(OVQP) $(ALLLIB) $(MATH) -o $@
192: $(CHMOD) $(SUMODE) $@
193: ls -l $@; size $@
194:
195: # All DBU routines.
196:
197: alldbu: version.o alldbu.o $(DBULIB) $(ALLLIB)
198: $(CC) $(LDFLAGS) version.o [email protected] $(OTHERS) $(DBULIB) $(ALLLIB) $(MATH) -o $@
199: $(CHMOD) $(SUMODE) $@
200: ls -l $@; size $@
201:
202: # Full VAX System
203:
204: ALLLIBS=$(PARSER) $(QRYMOD) $(DECOMP) $(OVQP) $(DBULIB) $(ALLLIB)
205:
206: vaxingres: version.o vaxingres.o $(ALLLIBS)
207: $(CC) $(LDFLAGS) version.o [email protected] $(OTHERS) $(ALLLIBS) $(MATH) -o $@
208: $(CHMOD) $(SUMODE) $@
209: ls -l $@; size $@
210:
211: #################################################################
212: #
213: # Install the world
214: #
215:
216: install: install$(CPUTYPE) $(BIN)/sysdump $(BIN)/monitor
217:
218: installPDP: $(BIN)/parser $(BIN)/qrymod $(BIN)/decomp $(BIN)/alldbu
219:
220: installVAX: $(BIN)/vaxingres
221:
222: $(BIN)/monitor: monitor
223: $(CP) monitor $(BIN)/monitor
224: $(BIN)/parser: parser
225: $(CP) parser $(BIN)/parser; $(CHMOD) $(SUMODE) $(BIN)/parser
226: $(BIN)/qrymod: qrymod
227: $(CP) qrymod $(BIN)/qrymod; $(CHMOD) $(SUMODE) $(BIN)/qrymod
228: $(BIN)/decomp: decomp
229: $(CP) decomp $(BIN)/decomp; $(CHMOD) $(SUMODE) $(BIN)/decomp
230: $(BIN)/alldbu: alldbu
231: $(CP) alldbu $(BIN)/alldbu; $(CHMOD) $(SUMODE) $(BIN)/alldbu
232: $(BIN)/vaxingres: vaxingres
233: $(CP) vaxingres $(BIN)/vaxingres; $(CHMOD) $(SUMODE) $(BIN)/vaxingres
234: $(BIN)/sysdump: sysdump
235: $(CP) sysdump $(BIN)/sysdump; $(CHMOD) $(SUMODE) $(BIN)/sysdump
236:
237: allinstall: version.o all1 install
238:
239: all1:
240: chdir ../h; $(MAKE) $(MFLAGS) $(INSTALL)
241: chdir ../gutil; $(MAKE) $(MFLAGS) $(INSTALL)
242: chdir ../iutil; $(MAKE) $(MFLAGS) $(INSTALL)
243: chdir ../ctlmod; $(MAKE) $(MFLAGS) $(INSTALL)
244: chdir ../dbu; $(MAKE) $(MFLAGS) $(INSTALL)
245: chdir ../decomp; $(MAKE) $(MFLAGS) $(INSTALL)
246: chdir ../equel; $(MAKE) $(MFLAGS) $(INSTALL)
247: chdir ../libq; $(MAKE) $(MFLAGS) $(INSTALL)
248: chdir ../monitor; $(MAKE) $(MFLAGS) $(INSTALL)
249: chdir ../ovqp; $(MAKE) $(MFLAGS) $(INSTALL)
250: chdir ../parser; $(MAKE) $(MFLAGS) $(INSTALL)
251: chdir ../qrymod; $(MAKE) $(MFLAGS) $(INSTALL)
252: chdir ../support; $(MAKE) $(MFLAGS) $(INSTALL)
253:
254: # install the user programs
255: sysinstall:
256: @echo 'you may have to be root for this to work....'
257: chdir ../support; $(MAKE) $(MFLAGS) SYSBIN=$(SYSBIN) SYSLIB=$(SYSLIB) sysinstall
258: chdir ../equel; $(MAKE) $(MFLAGS) SYSBIN=$(SYSBIN) SYSLIB=$(SYSLIB) sysinstall
259: chdir ../libq; $(MAKE) $(MFLAGS) SYSBIN=$(SYSBIN) SYSLIB=$(SYSLIB) sysinstall
260:
261: #################################################################
262: #
263: # Miscellaneous entries
264: #
265:
266: new: new$(CPUTYPE)
267: newPDP:
268: rm -f $(PDPALL)
269: newVAX:
270: rm -f $(VAXALL)
271:
272: print: sources
273: $(PR) Makefile *.[csy]
274:
275: vgrind: sources
276: cp /dev/null index
277: $(VGRIND) -h "$(HEADER) (Release 7)" -n Makefile
278: $(VGRIND) -h "$(HEADER) (Release 7)" *.[csy]
279: $(VGRIND) -h "$(HEADER) (Release 7)" -x index
280:
281: clean: new
282: rm -f *.o
283: rm -f a.out core
284:
285: allclean: clean
286: chdir ../h; $(MAKE) $(MFLAGS) clean
287: chdir ../gutil; $(MAKE) $(MFLAGS) clean
288: chdir ../iutil; $(MAKE) $(MFLAGS) clean
289: chdir ../ctlmod; $(MAKE) $(MFLAGS) clean
290: chdir ../dbu; $(MAKE) $(MFLAGS) clean
291: chdir ../decomp; $(MAKE) $(MFLAGS) clean
292: chdir ../equel; $(MAKE) $(MFLAGS) clean
293: chdir ../libq; $(MAKE) $(MFLAGS) clean
294: chdir ../monitor; $(MAKE) $(MFLAGS) clean
295: chdir ../ovqp; $(MAKE) $(MFLAGS) clean
296: chdir ../parser; $(MAKE) $(MFLAGS) clean
297: chdir ../qrymod; $(MAKE) $(MFLAGS) clean
298: chdir ../support; $(MAKE) $(MFLAGS) clean
299:
300: sources: $(SRCS)
301:
302: $(SRCS):
303: $(GET) $(REL) SCCS/s.$@
304:
305: depend:
306: grep '^#[ ]*include' $(SRCS) | sed -n -f ../h/depend.sed > makedep
307: echo '/^# DO NOT DELETE THIS LINE/+2,$$d' >eddep
308: echo '$$r makedep' >>eddep
309: echo 'w' >>eddep
310: cp Makefile Makefile.bak
311: ed - Makefile < eddep
312: rm eddep makedep
313: echo '# DEPENDENCIES MUST END AT END OF FILE' >> Makefile
314: echo '# IF YOU PUT STUFF HERE IT WILL GO AWAY' >> Makefile
315: echo '# see make depend above' >> Makefile
316:
317: # DO NOT DELETE THIS LINE -- make depend uses it
318:
319: monitor.o:$H/func.h
320: parser.o:$H/ingres.h
321: parser.o:$H/aux.h
322: parser.o:$H/access.h
323: parser.o:$H/func.h
324: qrymod.o:$H/func.h
325: decomp.o:$H/func.h
326: alldbu.o:$H/func.h
327: vaxingres.o:$H/ingres.h
328: vaxingres.o:$H/aux.h
329: vaxingres.o:$H/access.h
330: vaxingres.o:$H/func.h
331: sysdump.o:$H/func.h
332: # DEPENDENCIES MUST END AT END OF FILE
333: # IF YOU PUT STUFF HERE IT WILL GO AWAY
334: # see make depend above
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.