xref: /openbsd/share/mk/sys.mk (revision 404b540a)
1#	$OpenBSD: sys.mk,v 1.57 2009/06/20 23:38:12 miod 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=	4
13OSMINOR=	6
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
35PIPE?=		-pipe
36
37CFLAGS?=	-O2 ${PIPE} ${DEBUG}
38COMPILE.c?=	${CC} ${CFLAGS} ${CPPFLAGS} -c
39LINK.c?=	${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}
40
41HOSTCC?=	cc
42
43CXX?=		c++
44CXXFLAGS?=	${CFLAGS}
45COMPILE.cc?=	${CXX} ${CXXFLAGS} ${CPPFLAGS} -c
46LINK.cc?=	${CXX} ${CXXFLAGS} ${CPPFLAGS} ${LDFLAGS}
47
48CPP?=		cpp
49CPPFLAGS?=
50
51FC?=		f77
52FFLAGS?=		-O2
53RFLAGS?=
54COMPILE.f?=	${FC} ${FFLAGS} -c
55LINK.f?=	${FC} ${FFLAGS} ${LDFLAGS}
56COMPILE.F?=	${FC} ${FFLAGS} ${CPPFLAGS} -c
57LINK.F?=	${FC} ${FFLAGS} ${CPPFLAGS} ${LDFLAGS}
58COMPILE.r?=	${FC} ${FFLAGS} ${RFLAGS} -c
59LINK.r?=	${FC} ${FFLAGS} ${RFLAGS} ${LDFLAGS}
60
61LEX?=		lex
62LFLAGS?=
63LEX.l?=		${LEX} ${LFLAGS}
64
65LD?=		ld
66LDFLAGS+=	${DEBUG}
67
68LINT?=		lint
69LINTFLAGS?=	-hx
70
71MAKE?=		make
72
73PC?=		pc
74PFLAGS?=
75COMPILE.p?=	${PC} ${PFLAGS} ${CPPFLAGS} -c
76LINK.p?=	${PC} ${PFLAGS} ${CPPFLAGS} ${LDFLAGS}
77
78SHELL?=		sh
79
80YACC?=		yacc
81YFLAGS?=	-d
82YACC.y?=	${YACC} ${YFLAGS}
83
84INSTALL?=	install
85
86CTAGS?=		/usr/bin/ctags
87
88# C
89.c:
90	${LINK.c} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
91.c.o:
92	${COMPILE.c} ${.IMPSRC}
93.c.a:
94	${COMPILE.c} ${.IMPSRC}
95	${AR} ${ARFLAGS} $@ $*.o
96	rm -f $*.o
97.c.ln:
98	${LINT} ${LINTFLAGS} ${CFLAGS:M-[IDU]*} ${CPPFLAGS:M-[IDU]*} -i ${.IMPSRC}
99
100# C++
101.cc:
102	${LINK.cc} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
103.cc.o:
104	${COMPILE.cc} ${.IMPSRC}
105.cc.a:
106	${COMPILE.cc} ${.IMPSRC}
107	${AR} ${ARFLAGS} $@ $*.o
108	rm -f $*.o
109
110.C:
111	${LINK.cc} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
112.C.o:
113	${COMPILE.cc} ${.IMPSRC}
114.C.a:
115	${COMPILE.cc} ${.IMPSRC}
116	${AR} ${ARFLAGS} $@ $*.o
117	rm -f $*.o
118
119.cxx:
120	${LINK.cc} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
121.cxx.o:
122	${COMPILE.cc} ${.IMPSRC}
123.cxx.a:
124	${COMPILE.cc} ${.IMPSRC}
125	${AR} ${ARFLAGS} $@ $*.o
126	rm -f $*.o
127
128# Fortran/Ratfor
129.f:
130	${LINK.f} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
131.f.o:
132	${COMPILE.f} ${.IMPSRC}
133.f.a:
134	${COMPILE.f} ${.IMPSRC}
135	${AR} ${ARFLAGS} $@ $*.o
136	rm -f $*.o
137
138.F:
139	${LINK.F} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
140.F.o:
141	${COMPILE.F} ${.IMPSRC}
142.F.a:
143	${COMPILE.F} ${.IMPSRC}
144	${AR} ${ARFLAGS} $@ $*.o
145	rm -f $*.o
146
147.r:
148	${LINK.r} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
149.r.o:
150	${COMPILE.r} ${.IMPSRC}
151.r.a:
152	${COMPILE.r} ${.IMPSRC}
153	${AR} ${ARFLAGS} $@ $*.o
154	rm -f $*.o
155
156# Pascal
157.p:
158	${LINK.p} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
159.p.o:
160	${COMPILE.p} ${.IMPSRC}
161.p.a:
162	${COMPILE.p} ${.IMPSRC}
163	${AR} ${ARFLAGS} $@ $*.o
164	rm -f $*.o
165
166# Assembly
167.s:
168	${LINK.s} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
169.s.o:
170	${COMPILE.s} ${.IMPSRC}
171.s.a:
172	${COMPILE.s} ${.IMPSRC}
173	${AR} ${ARFLAGS} $@ $*.o
174	rm -f $*.o
175.S:
176	${LINK.S} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
177.S.o:
178	${COMPILE.S} ${.IMPSRC}
179.S.a:
180	${COMPILE.S} ${.IMPSRC}
181	${AR} ${ARFLAGS} $@ $*.o
182	rm -f $*.o
183
184# Lex
185.l:
186	${LEX.l} ${.IMPSRC}
187	${LINK.c} -o ${.TARGET} lex.yy.c ${LDLIBS} -ll
188	rm -f lex.yy.c
189.l.c:
190	${LEX.l} ${.IMPSRC}
191	mv lex.yy.c ${.TARGET}
192.l.o:
193	${LEX.l} ${.IMPSRC}
194	${COMPILE.c} -o ${.TARGET} lex.yy.c
195	rm -f lex.yy.c
196.l.ln:
197	${LEX.l} ${.IMPSRC}
198	mv lex.yy.c ${.TARGET:R}.c
199	${LINT} ${LINTFLAGS} ${CFLAGS:M-[IDU]*} ${CPPFLAGS:M-[IDU]*} -i ${.TARGET:R}.c
200	rm -f ${.TARGET:R}.c
201
202# Yacc
203.y:
204	${YACC.y} ${.IMPSRC}
205	${LINK.c} -o ${.TARGET} y.tab.c ${LDLIBS}
206	rm -f y.tab.c
207.y.c:
208	${YACC.y} ${.IMPSRC}
209	mv y.tab.c ${.TARGET}
210.y.o:
211	${YACC.y} ${.IMPSRC}
212	${COMPILE.c} -o ${.TARGET} y.tab.c
213	rm -f y.tab.c
214.y.ln:
215	${YACC.y} ${.IMPSRC}
216	mv y.tab.c ${.TARGET:R}.c
217	${LINT} ${LINTFLAGS} ${CFLAGS:M-[IDU]*} ${CPPFLAGS:M-[IDU]*} -i ${.TARGET:R}.c
218	rm -f ${.TARGET:R}.c
219
220# Shell
221.sh:
222	rm -f ${.TARGET}
223	cp ${.IMPSRC} ${.TARGET}
224