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