xref: /openbsd/share/mk/sys.mk (revision d485f761)
1#	$OpenBSD: sys.mk,v 1.27 2001/09/11 13:11:18 deraadt Exp $
2#	$NetBSD: sys.mk,v 1.27 1996/04/10 05:47:19 mycroft Exp $
3#	@(#)sys.mk	5.11 (Berkeley) 3/13/91
4
5.if defined(EXTRA_SYS_MK_INCLUDES)
6.for __SYS_MK_INCLUDE in ${EXTRA_SYS_MK_INCLUDES}
7.include ${__SYS_MK_INCLUDE}
8.endfor
9.endif
10
11unix=		We run OpenBSD.
12OSMAJOR=	3
13OSMINOR=	0
14OSREV=		$(OSMAJOR).$(OSMINOR)
15OSrev=		$(OSMAJOR)$(OSMINOR)
16
17.SUFFIXES: .out .a .ln .o .c .cc .C .cxx .F .f .r .y .l .s .S .cl .p .h .sh .m4
18
19.LIBS:		.a
20
21AR?=		ar
22ARFLAGS?=	rl
23RANLIB?=	ranlib
24LORDER?=	lorder
25
26AS?=		as
27AFLAGS?=	${DEBUG}
28COMPILE.s?=	${CC} ${AFLAGS} -c
29LINK.s?=	${CC} ${AFLAGS} ${LDFLAGS}
30COMPILE.S?=	${CC} ${AFLAGS} ${CPPFLAGS} -c
31LINK.S?=	${CC} ${AFLAGS} ${CPPFLAGS} ${LDFLAGS}
32
33CC?=		cc
34
35.if (${MACHINE_ARCH} == "m88k") || (${MACHINE_ARCH} == "vax")
36CFLAGS?=	-O0 ${PIPE} ${DEBUG}
37.else
38CFLAGS?=	-O2 ${PIPE} ${DEBUG}
39.endif
40COMPILE.c?=	${CC} ${CFLAGS} ${CPPFLAGS} -c
41LINK.c?=	${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}
42
43HOSTCC?=	cc
44
45CXX?=		c++
46CXXFLAGS?=	${CFLAGS}
47COMPILE.cc?=	${CXX} ${CXXFLAGS} ${CPPFLAGS} -c
48LINK.cc?=	${CXX} ${CXXFLAGS} ${CPPFLAGS} ${LDFLAGS}
49
50CPP?=		cpp
51CPPFLAGS?=
52
53FC?=		f77
54FFLAGS?=		-O2
55RFLAGS?=
56COMPILE.f?=	${FC} ${FFLAGS} -c
57LINK.f?=	${FC} ${FFLAGS} ${LDFLAGS}
58COMPILE.F?=	${FC} ${FFLAGS} ${CPPFLAGS} -c
59LINK.F?=	${FC} ${FFLAGS} ${CPPFLAGS} ${LDFLAGS}
60COMPILE.r?=	${FC} ${FFLAGS} ${RFLAGS} -c
61LINK.r?=	${FC} ${FFLAGS} ${RFLAGS} ${LDFLAGS}
62
63LEX?=		lex
64LFLAGS?=
65LEX.l?=		${LEX} ${LFLAGS}
66
67LD?=		ld
68LDFLAGS+=	${DEBUG}
69
70LINT?=		lint
71LINTFLAGS?=	-chapbx
72
73MAKE?=		make
74
75PC?=		pc
76PFLAGS?=
77COMPILE.p?=	${PC} ${PFLAGS} ${CPPFLAGS} -c
78LINK.p?=	${PC} ${PFLAGS} ${CPPFLAGS} ${LDFLAGS}
79
80SHELL?=		sh
81
82YACC?=		yacc
83YFLAGS?=	-d
84YACC.y?=	${YACC} ${YFLAGS}
85
86INSTALL?=	install
87
88CTAGS?=		/usr/bin/ctags
89
90# C
91.c:
92	${LINK.c} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
93.c.o:
94	${COMPILE.c} ${.IMPSRC}
95.if (${MACHINE_ARCH} != "alpha")
96.c.a:
97	${COMPILE.c} ${.IMPSRC}
98	${AR} ${ARFLAGS} $@ $*.o
99	rm -f $*.o
100.endif
101.c.ln:
102	${LINT} ${LINTFLAGS} ${CFLAGS:M-[IDU]*} -i ${.IMPSRC}
103
104# C++
105.cc:
106	${LINK.cc} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
107.cc.o:
108	${COMPILE.cc} ${.IMPSRC}
109.cc.a:
110	${COMPILE.cc} ${.IMPSRC}
111	${AR} ${ARFLAGS} $@ $*.o
112	rm -f $*.o
113
114.C:
115	${LINK.cc} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
116.C.o:
117	${COMPILE.cc} ${.IMPSRC}
118.C.a:
119	${COMPILE.cc} ${.IMPSRC}
120	${AR} ${ARFLAGS} $@ $*.o
121	rm -f $*.o
122
123.cxx:
124	${LINK.cc} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
125.cxx.o:
126	${COMPILE.cc} ${.IMPSRC}
127.cxx.a:
128	${COMPILE.cc} ${.IMPSRC}
129	${AR} ${ARFLAGS} $@ $*.o
130	rm -f $*.o
131
132# Fortran/Ratfor
133.f:
134	${LINK.f} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
135.f.o:
136	${COMPILE.f} ${.IMPSRC}
137.f.a:
138	${COMPILE.f} ${.IMPSRC}
139	${AR} ${ARFLAGS} $@ $*.o
140	rm -f $*.o
141
142.F:
143	${LINK.F} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
144.F.o:
145	${COMPILE.F} ${.IMPSRC}
146.F.a:
147	${COMPILE.F} ${.IMPSRC}
148	${AR} ${ARFLAGS} $@ $*.o
149	rm -f $*.o
150
151.r:
152	${LINK.r} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
153.r.o:
154	${COMPILE.r} ${.IMPSRC}
155.r.a:
156	${COMPILE.r} ${.IMPSRC}
157	${AR} ${ARFLAGS} $@ $*.o
158	rm -f $*.o
159
160# Pascal
161.p:
162	${LINK.p} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
163.p.o:
164	${COMPILE.p} ${.IMPSRC}
165.p.a:
166	${COMPILE.p} ${.IMPSRC}
167	${AR} ${ARFLAGS} $@ $*.o
168	rm -f $*.o
169
170# Assembly
171.s:
172	${LINK.s} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
173.s.o:
174	${COMPILE.s} ${.IMPSRC}
175.s.a:
176	${COMPILE.s} ${.IMPSRC}
177	${AR} ${ARFLAGS} $@ $*.o
178	rm -f $*.o
179.S:
180	${LINK.S} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
181.S.o:
182	${COMPILE.S} ${.IMPSRC}
183.S.a:
184	${COMPILE.S} ${.IMPSRC}
185	${AR} ${ARFLAGS} $@ $*.o
186	rm -f $*.o
187
188# Lex
189.l:
190	${LEX.l} ${.IMPSRC}
191	${LINK.c} -o ${.TARGET} lex.yy.c ${LDLIBS} -ll
192	rm -f lex.yy.c
193.l.c:
194	${LEX.l} ${.IMPSRC}
195	mv lex.yy.c ${.TARGET}
196.l.o:
197	${LEX.l} ${.IMPSRC}
198	${COMPILE.c} -o ${.TARGET} lex.yy.c
199	rm -f lex.yy.c
200
201# Yacc
202.y:
203	${YACC.y} ${.IMPSRC}
204	${LINK.c} -o ${.TARGET} y.tab.c ${LDLIBS}
205	rm -f y.tab.c
206.y.c:
207	${YACC.y} ${.IMPSRC}
208	mv y.tab.c ${.TARGET}
209.y.o:
210	${YACC.y} ${.IMPSRC}
211	${COMPILE.c} -o ${.TARGET} y.tab.c
212	rm -f y.tab.c
213
214# Shell
215.sh:
216	rm -f ${.TARGET}
217	cp ${.IMPSRC} ${.TARGET}
218