1#
2# CDDL HEADER START
3#
4# The contents of this file are subject to the terms of the
5# Common Development and Distribution License (the "License").
6# You may not use this file except in compliance with the License.
7#
8# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9# or http://www.opensolaris.org/os/licensing.
10# See the License for the specific language governing permissions
11# and limitations under the License.
12#
13# When distributing Covered Code, include this CDDL HEADER in each
14# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15# If applicable, add the following below this CDDL HEADER, with the
16# fields enclosed by brackets "[]" replaced with your own identifying
17# information: Portions Copyright [yyyy] [name of copyright owner]
18#
19# CDDL HEADER END
20#
21# Copyright 2003 Sun Microsystems, Inc. All rights reserved.
22# Use is subject to license terms.
23#
24# @(#)make.rules.file 1.22 06/12/12
25#
26
27SUFFIXES = .o .c .c~ .cc .cc~ .y .y~ .l .l~ .s .s~ .sh .sh~ .S .S~ .i .ln \
28	.h .h~ .f .f~ .for .for~ .F .F~ .f90 .f90~ .ftn .ftn~ .mod .mod~ \
29	.sym .def .def~ .p .p~ .r .r~ .cps .cps~ .C .C~ .Y .Y~ .L .L~ \
30	.java .java~ .class
31
32.SUFFIXES: $(SUFFIXES)
33
34# OUTPUT_OPTION should be defined to "-o $@" when
35# the default rules are used for non-local files.
36OUTPUT_OPTION=
37
38#	C language section.
39CC=cc
40CFLAGS=
41CPPFLAGS=
42LINT=lint
43LINTFLAGS=
44COMPILE.c=$(CC) $(CFLAGS) $(CPPFLAGS) -c
45LINK.c=$(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS)
46LINT.c=$(LINT) $(LINTFLAGS) $(CPPFLAGS)
47.c:
48	$(LINK.c) -o $@ $< $(LDLIBS)
49.c~:
50	$(GET) $(GFLAGS) -p $< > $*.c
51	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $*.c
52.c.o:
53	$(COMPILE.c) $(OUTPUT_OPTION) $<
54.c~.o:
55	$(GET) $(GFLAGS) -p $< > $*.c
56	$(CC) $(CFLAGS) -c  $*.c
57.c.i:
58	$(CC) $(CFLAGS) $(CPPFLAGS) -P $<
59.c~.i:
60	$(GET) $(GFLAGS) -p $< > $*.c
61	$(CC) $(CFLAGS) $(CPPFLAGS) -P $*.c
62.c.ln:
63	$(LINT.c) $(OUTPUT_OPTION) -c $<
64.c~.ln:
65	$(GET) $(GFLAGS) -p $< > $*.c
66	$(LINT.c) $(OUTPUT_OPTION) -c $*.c
67.c.a:
68	$(COMPILE.c) -o $% $<
69	$(AR) $(ARFLAGS) $@ $%
70	$(RM) $%
71.c~.a:
72	$(GET) $(GFLAGS) -p $< > $*.c
73	$(COMPILE.c) -o $% $*.c
74	$(AR) $(ARFLAGS) $@ $%
75	$(RM) $%
76
77#	C language section. yacc.
78YACC=yacc
79YFLAGS=
80YACC.y=$(YACC) $(YFLAGS)
81.y:
82	$(YACC.y) $<
83	$(LINK.c) -o $@ y.tab.c $(LDLIBS)
84	$(RM) y.tab.c
85.y~:
86	$(GET) $(GFLAGS) -p $< > $*.y
87	$(YACC) $(YFLAGS) $*.y
88	$(COMPILE.c) -o $@ y.tab.c
89	$(RM) y.tab.c
90
91.y.c:
92	$(YACC.y) $<
93	mv y.tab.c $@
94.y~.c:
95	$(GET) $(GFLAGS) -p $< > $*.y
96	$(YACC) $(YFLAGS) $*.y
97	mv y.tab.c $@
98.y.ln:
99	$(YACC.y) $<
100	$(LINT.c) -o $@ -i y.tab.c
101	$(RM) y.tab.c
102.y~.ln:
103	$(GET) $(GFLAGS) -p $< > $*.y
104	$(YACC.y) $*.y
105	$(LINT.c) -o $@ -i y.tab.c
106	$(RM) y.tab.c
107.y.o:
108	$(YACC.y) $<
109	$(COMPILE.c) -o $@ y.tab.c
110	$(RM) y.tab.c
111.y~.o:
112	$(GET) $(GFLAGS) -p $< > $*.y
113	$(YACC) $(YFLAGS) $*.y
114	$(CC) $(CFLAGS) -c y.tab.c
115	rm -f y.tab.c
116	mv y.tab.o $@
117
118#	C language section. lex.
119LEX=lex
120LFLAGS=
121LEX.l=$(LEX) $(LFLAGS) -t
122.l:
123	$(RM) $*.c
124	$(LEX.l) $< > $*.c
125	$(LINK.c) -o $@ $*.c -ll $(LDLIBS)
126	$(RM) $*.c
127.l~:
128	$(GET) $(GFLAGS) -p $< > $*.l
129	$(LEX) $(LFLAGS) $*.l
130	$(CC) $(CFLAGS) -c lex.yy.c
131	rm -f lex.yy.c
132	mv lex.yy.c $@
133
134.l.c :
135	$(RM) $@
136	$(LEX.l) $< > $@
137.l~.c:
138	$(GET) $(GFLAGS) -p $< > $*.l
139	$(LEX) $(LFLAGS) $*.l
140	mv lex.yy.c $@
141.l.ln:
142	$(RM) $*.c
143	$(LEX.l) $< > $*.c
144	$(LINT.c) -o $@ -i $*.c
145	$(RM) $*.c
146.l~.ln:
147	$(GET) $(GFLAGS) -p $< > $*.l
148	$(RM) $*.c
149	$(LEX.l) $*.l > $*.c
150	$(LINT.c) -o $@ -i $*.c
151	$(RM) $*.c
152.l.o:
153	$(RM) $*.c
154	$(LEX.l) $< > $*.c
155	$(COMPILE.c) -o $@ $*.c
156	$(RM) $*.c
157.l~.o:
158	$(GET) $(GFLAGS) -p $< > $*.l
159	$(LEX) $(LFLAGS) $*.l
160	$(CC) $(CFLAGS) -c lex.yy.c
161	rm -f lex.yy.c
162	mv lex.yy.c $@
163
164#       C++ language section.
165CCC=CC
166CCFLAGS=
167COMPILE.cc=$(CCC) $(CCFLAGS) $(CPPFLAGS)  -c
168LINK.cc=$(CCC) $(CCFLAGS) $(CPPFLAGS) $(LDFLAGS)
169COMPILE.C=$(CCC) $(CCFLAGS) $(CPPFLAGS)  -c
170LINK.C=$(CCC) $(CCFLAGS) $(CPPFLAGS) $(LDFLAGS)
171.cc:
172	$(LINK.cc) -o $@ $< $(LDLIBS)
173.cc~:
174	$(GET) $(GFLAGS) -p $< > $*.cc
175	$(LINK.cc) -o $@ $*.cc $(LDLIBS)
176.cc.o:
177	$(COMPILE.cc) $(OUTPUT_OPTION) $<
178.cc~.o:
179	$(GET) $(GFLAGS) -p $< > $*.cc
180	$(COMPILE.cc) $(OUTPUT_OPTION) $*.cc
181.cc.i:
182	$(CCC) $(CCFLAGS) $(CPPFLAGS) -P $<
183.cc~.i:
184	$(GET) $(GFLAGS) -p $< > $*.cc
185	$(CCC) $(CCFLAGS) $(CPPFLAGS) -P $*.cc
186.cc.a:
187	$(COMPILE.cc) -o $% $<
188	$(AR) $(ARFLAGS) $@ $%
189	$(RM) $%
190.cc~.a:
191	$(GET) $(GFLAGS) -p $< > $*.cc
192	$(COMPILE.cc) -o $% $*.cc
193	$(AR) $(ARFLAGS) $@ $%
194	$(RM) $%
195
196.C:
197	$(LINK.C) -o $@ $< $(LDLIBS)
198.C~:
199	$(GET) $(GFLAGS) -p $< > $*.C
200	$(LINK.C) -o $@ $*.C $(LDLIBS)
201.C.o:
202	$(COMPILE.C) $(OUTPUT_OPTION) $<
203.C~.o:
204	$(GET) $(GFLAGS) -p $< > $*.C
205	$(COMPILE.C) $(OUTPUT_OPTION) $*.C
206.C.i:
207	$(CCC) $(CCFLAGS) $(CPPFLAGS) -P $<
208.C~.i:
209	$(GET) $(GFLAGS) -p $< > $*.C
210	$(CCC) $(CCFLAGS) $(CPPFLAGS) -P  $*.C
211.C.a:
212	$(COMPILE.C) -o $% $<
213	$(AR) $(ARFLAGS) $@ $%
214	$(RM) $%
215.C~.a:
216	$(GET) $(GFLAGS) -p $< > $*.C
217	$(COMPILE.C) -o $% $*.C
218	$(AR) $(ARFLAGS) $@ $%
219	$(RM) $%
220
221#	FORTRAN section.
222FC=f77
223FFLAGS=
224COMPILE.f=$(FC) $(FFLAGS)  -c
225LINK.f=$(FC) $(FFLAGS) $(LDFLAGS)
226COMPILE.F=$(FC) $(FFLAGS) $(CPPFLAGS)  -c
227LINK.F=$(FC) $(FFLAGS) $(CPPFLAGS) $(LDFLAGS)
228.f:
229	$(LINK.f) -o $@ $< $(LDLIBS)
230.f~:
231	$(GET) $(GFLAGS) -p $< > $*.f
232	$(FC) $(FFLAGS) $(LDFLAGS) -o $@ $*.f
233.f.o:
234	$(COMPILE.f) $(OUTPUT_OPTION) $<
235.f~.o:
236	$(GET) $(GFLAGS) -p $< > $*.f
237	$(FC) $(FFLAGS) -c  $*.f
238.f.a:
239	$(COMPILE.f) -o $% $<
240	$(AR) $(ARFLAGS) $@ $%
241	$(RM) $%
242.f~.a:
243	$(GET) $(GFLAGS) -p $< > $*.f
244	$(COMPILE.f) -o $% $*.f
245	$(AR) $(ARFLAGS) $@ $%
246	$(RM) $%
247.for:
248	$(LINK.f) -o $@ $< $(LDLIBS)
249.for~:
250	$(GET) $(GFLAGS) -p $< > $*.for
251	$(FC) $(FFLAGS) $(LDFLAGS) -o $@ $*.for
252.for.o:
253	$(COMPILE.f) $(OUTPUT_OPTION) $<
254.for~.o:
255	$(GET) $(GFLAGS) -p $< > $*.for
256	$(FC) $(FFLAGS) -c  $*.for
257.for.a:
258	$(COMPILE.f) -o $% $<
259	$(AR) $(ARFLAGS) $@ $%
260	$(RM) $%
261.for~.a:
262	$(GET) $(GFLAGS) -p $< > $*.for
263	$(COMPILE.f) -o $% $*.for
264	$(AR) $(ARFLAGS) $@ $%
265	$(RM) $%
266.F:
267	$(LINK.F) -o $@ $< $(LDLIBS)
268.F~:
269	$(GET) $(GFLAGS) -p $< > $*.F
270	$(FC) $(FFLAGS) $(LDFLAGS) -o $@ $*.F
271.F.o:
272	$(COMPILE.F) $(OUTPUT_OPTION) $<
273.F~.o:
274	$(GET) $(GFLAGS) -p $< > $*.F
275	$(FC) $(FFLAGS) -c  $*.F
276.F.a:
277	$(COMPILE.F) -o $% $<
278	$(AR) $(ARFLAGS) $@ $%
279	$(RM) $%
280.F~.a:
281	$(GET) $(GFLAGS) -p $< > $*.F
282	$(COMPILE.F) -o $% $*.F
283	$(AR) $(ARFLAGS) $@ $%
284	$(RM) $%
285
286#	FORTRAN section. ratfor.
287RFLAGS=
288COMPILE.r=$(FC) $(FFLAGS) $(RFLAGS)  -c
289LINK.r=$(FC) $(FFLAGS) $(RFLAGS) $(LDFLAGS)
290.r:
291	$(LINK.r) -o $@ $< $(LDLIBS)
292.r~:
293	$(GET) $(GFLAGS) -p $< > $*.r
294	$(LINK.r) -o $@ $*.r $(LDLIBS)
295.r.o:
296	$(COMPILE.r) $(OUTPUT_OPTION) $<
297.r~.o:
298	$(GET) $(GFLAGS) -p $< > $*.r
299	$(COMPILE.r) $(OUTPUT_OPTION) $*.r
300.r.a:
301	$(COMPILE.r) -o $% $<
302	$(AR) $(ARFLAGS) $@ $%
303	$(RM) $%
304.r~.a:
305	$(GET) $(GFLAGS) -p $< > $*.r
306	$(COMPILE.r) -o $% $*.r
307	$(AR) $(ARFLAGS) $@ $%
308	$(RM) $%
309
310#	FORTRAN 90 section.
311F90C=f90
312F90FLAGS=
313COMPILE.f90=$(F90C) $(F90FLAGS) -c
314LINK.f90=$(F90C) $(F90FLAGS) $(LDFLAGS)
315COMPILE.ftn=$(F90C) $(F90FLAGS) -c
316LINK.ftn=$(F90C) $(F90FLAGS) $(LDFLAGS)
317.f90:
318	$(LINK.f90) -o $@ $< $(LDLIBS)
319.f90~:
320	$(GET) $(GFLAGS) -p $< > $*.f90
321	$(LINK.f90) -o $@ $*.f90 $(LDLIBS)
322.f90.o:
323	$(COMPILE.f90) $(OUTPUT_OPTION) $<
324.f90~.o:
325	$(GET) $(GFLAGS) -p $< > $*.f90
326	$(COMPILE.f90) $(OUTPUT_OPTION) $*.f90
327.f90.a:
328	$(COMPILE.f90) -o $% $<
329	$(AR) $(ARFLAGS) $@ $%
330	$(RM) $%
331.f90~.a:
332	$(GET) $(GFLAGS) -p $< > $*.f90
333	$(COMPILE.f90) -o $% $*.f90
334	$(AR) $(ARFLAGS) $@ $%
335	$(RM) $%
336.ftn:
337	$(LINK.ftn) -o $@ $< $(LDLIBS)
338.ftn~:
339	$(GET) $(GFLAGS) -p $< > $*.ftn
340	$(LINK.ftn) -o $@ $*.ftn $(LDLIBS)
341.ftn.o:
342	$(COMPILE.ftn) $(OUTPUT_OPTION) $<
343.ftn~.o:
344	$(GET) $(GFLAGS) -p $< > $*.ftn
345	$(COMPILE.ftn) $(OUTPUT_OPTION) $*.ftn
346.ftn.a:
347	$(COMPILE.ftn) -o $% $<
348	$(AR) $(ARFLAGS) $@ $%
349	$(RM) $%
350.ftn~.a:
351	$(GET) $(GFLAGS) -p $< > $*.ftn
352	$(COMPILE.ftn) -o $% $*.ftn
353	$(AR) $(ARFLAGS) $@ $%
354	$(RM) $%
355
356#	Modula-2 section.
357M2C=m2c
358M2FLAGS=
359MODFLAGS=
360DEFFLAGS=
361COMPILE.def=$(M2C) $(M2FLAGS) $(DEFFLAGS)
362COMPILE.mod=$(M2C) $(M2FLAGS) $(MODFLAGS)
363.def.sym:
364	$(COMPILE.def) -o $@ $<
365.def~.sym:
366	$(GET) $(GFLAGS) -p $< > $*.def
367	$(COMPILE.def) -o $@ $*.def
368.mod:
369	$(COMPILE.mod) -o $@ -e $@ $<
370.mod~:
371	$(GET) $(GFLAGS) -p $< > $*.mod
372	$(COMPILE.mod) -o $@ -e $@ $*.mod
373.mod.o:
374	$(COMPILE.mod) -o $@ $<
375.mod~.o:
376	$(GET) $(GFLAGS) -p $< > $*.mod
377	$(COMPILE.mod) -o $@ $*.mod
378.mod.a:
379	$(COMPILE.mod) -o $% $<
380	$(AR) $(ARFLAGS) $@ $%
381	$(RM) $%
382.mod~.a:
383	$(GET) $(GFLAGS) -p $< > $*.mod
384	$(COMPILE.mod) -o $% $*.mod
385	$(AR) $(ARFLAGS) $@ $%
386	$(RM) $%
387
388#	Pascal section.
389PC=pc
390PFLAGS=
391COMPILE.p=$(PC) $(PFLAGS) $(CPPFLAGS)  -c
392LINK.p=$(PC) $(PFLAGS) $(CPPFLAGS) $(LDFLAGS)
393.p:
394	$(LINK.p) -o $@ $< $(LDLIBS)
395.p~:
396	$(GET) $(GFLAGS) -p $< > $*.p
397	$(LINK.p) -o $@ $*.p $(LDLIBS)
398.p.o:
399	$(COMPILE.p) $(OUTPUT_OPTION) $<
400.p~.o:
401	$(GET) $(GFLAGS) -p $< > $*.p
402	$(COMPILE.p) $(OUTPUT_OPTION) $*.p
403.p.a:
404	$(COMPILE.p) -o $% $<
405	$(AR) $(ARFLAGS) $@ $%
406	$(RM) $%
407.p~.a:
408	$(GET) $(GFLAGS) -p $< > $*.p
409	$(COMPILE.p) -o $% $*.p
410	$(AR) $(ARFLAGS) $@ $%
411	$(RM) $%
412
413#	Assembly section.
414AS=as
415ASFLAGS=
416COMPILE.s=$(AS) $(ASFLAGS)
417COMPILE.S=$(CC) $(ASFLAGS) $(CPPFLAGS)  -c
418.s.o:
419	$(COMPILE.s) -o $@ $<
420.s~.o:
421	$(GET) $(GFLAGS) -p $< > $*.s
422	$(COMPILE.s) -o $@ $*.s
423.s.a:
424	$(COMPILE.s) -o $% $<
425	$(AR) $(ARFLAGS) $@ $%
426	$(RM) $%
427.s~.a:
428	$(GET) $(GFLAGS) -p $< > $*.s
429	$(COMPILE.s) -o $% $*.s
430	$(AR) $(ARFLAGS) $@ $%
431	$(RM) $%
432.S.o:
433	$(COMPILE.S) -o $@ $<
434.S~.o:
435	$(GET) $(GFLAGS) -p $< > $*.S
436	$(COMPILE.S) -o $@ $*.S
437.S.a:
438	$(COMPILE.S) -o $% $<
439	$(AR) $(ARFLAGS) $@ $%
440	$(RM) $%
441.S~.a:
442	$(GET) $(GFLAGS) -p $< > $*.S
443	$(COMPILE.S) -o $% $*.S
444	$(AR) $(ARFLAGS) $@ $%
445	$(RM) $%
446
447#	Shell section.
448.sh:
449	$(RM) $@
450	cat $< > $@
451	chmod +x $@
452.sh~:
453	$(GET) $(GFLAGS) -p $< > $*.sh
454	cp $*.sh $@
455	chmod a+x $@
456
457#	NeWS section
458CPS=cps
459CPSFLAGS=
460.cps.h:
461	$(CPS) $(CPSFLAGS) $*.cps
462.cps~.h:
463	$(GET) $(GFLAGS) -p $< > $*.cps
464	$(CPS) $(CPSFLAGS) $*.cps
465
466#	JAVA section
467JAVAC=javac
468JAVACFLAGS=
469.java.class:
470	$(JAVAC) $(JAVACFLAGS) $<
471.java~.class:
472	$(GET) $(GFLAGS) -p $< > $*.java
473	$(JAVAC) $(JAVACFLAGS) $<
474
475#	Miscellaneous section.
476LD=ld
477LDFLAGS=
478LDLIBS=
479MAKE=make
480RM=rm -f
481AR=ar
482ARFLAGS=rv
483GET=get
484GFLAGS=
485
486markfile.o:	markfile
487	echo "static char _sccsid[] = \"`grep @'(#)' markfile`\";" > markfile.c
488	cc -c markfile.c
489	$(RM) markfile.c
490
491SCCSFLAGS=
492SCCSGETFLAGS=-s
493.SCCS_GET:
494	sccs $(SCCSFLAGS) get $(SCCSGETFLAGS) $@ -G$@
495
496.SCCS_GET_POSIX:
497	sccs $(SCCSFLAGS) get $(SCCSGETFLAGS) $@
498
499.GET_POSIX:
500	$(GET) $(GFLAGS) s.$@
501