1246149Ssjg#	$NetBSD: sys.mk,v 1.66.2.1 2002/06/05 03:31:01 lukem Exp $
2246149Ssjg#	@(#)sys.mk	8.2 (Berkeley) 3/21/94
3246149Ssjg
4246149SsjgOS=		NetBSD
5246149Ssjgunix?=		We run ${OS}.
6246149Ssjg
7246149Ssjg.if !defined(MAKE_VERSION)
8246149Ssjg# we are running native make
9246149Ssjg# which defined MAKE_VERSION between 20010609 and 20090324
10246149Ssjg# so we can make a rough guess
11246149Ssjg.if defined(.MAKE.LEVEL)
12246149SsjgMAKE_VERSION = 20090908
13246149Ssjg.elif defined(.MAKE.MAKEFILES)
14246149Ssjg# introduced 20071008
15246149SsjgMAKE_VERSION = 20090324
16246149Ssjg.else
17246149Ssjg# this just before when MAKE_VERSION was introduced
18246149SsjgMAKE_VERSION = 20010606
19246149Ssjg.endif
20246149Ssjg.endif
21246149Ssjg
22300313Ssjg.SUFFIXES: .out .a .ln .o .s .S .c ${CXX_SUFFIXES} .F .f .r .y .l .cl .p .h
23246149Ssjg.SUFFIXES: .sh .m4
24246149Ssjg
25246149Ssjg.LIBS:		.a
26246149Ssjg
27246149SsjgAR?=		ar
28246149SsjgARFLAGS?=	rl
29246149SsjgRANLIB?=	ranlib
30246149Ssjg
31246149SsjgAS?=		as
32246149SsjgAFLAGS?=
33246149SsjgCOMPILE.s?=	${CC} ${AFLAGS} -c
34246149SsjgLINK.s?=	${CC} ${AFLAGS} ${LDFLAGS}
35246149SsjgCOMPILE.S?=	${CC} ${AFLAGS} ${CPPFLAGS} -c -traditional-cpp
36246149SsjgLINK.S?=	${CC} ${AFLAGS} ${CPPFLAGS} ${LDFLAGS}
37246149Ssjg
38246149SsjgCC?=		cc
39246149Ssjg
40246149Ssjg# need to make sure this is set
41246149SsjgMACHINE_ARCH.${MACHINE} ?= ${MACHINE}
42246149Ssjg.if empty(MACHINE_ARCH)
43246149SsjgMACHINE_ARCH = ${MACHINE_ARCH.${MACHINE}}
44246149Ssjg.endif
45246149Ssjg
46246149Ssjg#
47246149Ssjg# CPU model, derived from MACHINE_ARCH
48246149Ssjg#
49246149SsjgMACHINE_CPU=	${MACHINE_ARCH:C/mipse[bl]/mips/:C/mips64e[bl]/mips/:C/sh3e[bl]/sh3/:S/m68000/m68k/:S/armeb/arm/}
50246149Ssjg
51246149Ssjg.if ${MACHINE_CPU} == "alpha" || \
52246149Ssjg    ${MACHINE_CPU} == "arm" || \
53246149Ssjg    ${MACHINE_CPU} == "i386" || \
54246149Ssjg    ${MACHINE_CPU} == "m68k" || \
55246149Ssjg    ${MACHINE_CPU} == "mips" || \
56246149Ssjg    ${MACHINE_CPU} == "powerpc" || \
57246149Ssjg    ${MACHINE_CPU} == "sparc" || \
58246149Ssjg    ${MACHINE_CPU} == "vax"
59246149SsjgDBG?=	-O2
60246149Ssjg.elif ${MACHINE_ARCH} == "x86_64"
61246149SsjgDBG?=
62246149Ssjg.elif ${MACHINE_ARCH} == "sparc64"
63246149SsjgDBG?=	-O -ffixed-g4	#Hack for embedany memory model compatibility
64246149Ssjg.else
65246149SsjgDBG?=	-O
66246149Ssjg.endif
67246149SsjgCFLAGS?=	${DBG}
68246149SsjgCOMPILE.c?=	${CC} ${CFLAGS} ${CPPFLAGS} -c
69246149SsjgLINK.c?=	${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}
70246149Ssjg
71246149SsjgCXX?=		c++
72246149SsjgCXXFLAGS?=	${CFLAGS}
73246149SsjgCOMPILE.cc?=	${CXX} ${CXXFLAGS} ${CPPFLAGS} -c
74246149SsjgLINK.cc?=	${CXX} ${CXXFLAGS} ${CPPFLAGS} ${LDFLAGS}
75246149Ssjg
76246149SsjgOBJC?=		${CC}
77246149SsjgOBJCFLAGS?=	${CFLAGS}
78246149SsjgCOMPILE.m?=	${OBJC} ${OBJCFLAGS} ${CPPFLAGS} -c
79246149SsjgLINK.m?=	${OBJC} ${OBJCFLAGS} ${CPPFLAGS} ${LDFLAGS}
80246149Ssjg
81246149SsjgCPP?=		cpp
82246149SsjgCPPFLAGS?=	
83246149Ssjg
84246149SsjgFC?=		f77
85246149SsjgFFLAGS?=	-O
86246149SsjgRFLAGS?=
87246149SsjgCOMPILE.f?=	${FC} ${FFLAGS} -c
88246149SsjgLINK.f?=	${FC} ${FFLAGS} ${LDFLAGS}
89246149SsjgCOMPILE.F?=	${FC} ${FFLAGS} ${CPPFLAGS} -c
90246149SsjgLINK.F?=	${FC} ${FFLAGS} ${CPPFLAGS} ${LDFLAGS}
91246149SsjgCOMPILE.r?=	${FC} ${FFLAGS} ${RFLAGS} -c
92246149SsjgLINK.r?=	${FC} ${FFLAGS} ${RFLAGS} ${LDFLAGS}
93246149Ssjg
94246149SsjgINSTALL?=	install
95246149Ssjg
96246149SsjgLEX?=		lex
97246149SsjgLFLAGS?=
98246149SsjgLEX.l?=		${LEX} ${LFLAGS}
99246149Ssjg
100246149SsjgLD?=		ld
101246149SsjgLDFLAGS?=
102246149Ssjg
103246149SsjgLINT?=		lint
104246149SsjgLINTFLAGS?=	-chapbxzF
105246149Ssjg
106246149SsjgLORDER?=	lorder
107246149Ssjg
108246149SsjgNM?=		nm
109246149Ssjg
110246149SsjgPC?=		pc
111246149SsjgPFLAGS?=
112246149SsjgCOMPILE.p?=	${PC} ${PFLAGS} ${CPPFLAGS} -c
113246149SsjgLINK.p?=	${PC} ${PFLAGS} ${CPPFLAGS} ${LDFLAGS}
114246149Ssjg
115246149SsjgSHELL?=		sh
116246149Ssjg
117246149SsjgSIZE?=		size
118246149Ssjg
119246149SsjgTSORT?= 	tsort -q
120246149Ssjg
121246149SsjgYACC?=		yacc
122246149SsjgYFLAGS?=
123246149SsjgYACC.y?=	${YACC} ${YFLAGS}
124246149Ssjg
125246149Ssjg# C
126246149Ssjg.c:
127246149Ssjg	${LINK.c} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
128246149Ssjg.c.o:
129246149Ssjg	${COMPILE.c} ${.IMPSRC}
130246149Ssjg.c.a:
131246149Ssjg	${COMPILE.c} ${.IMPSRC}
132246149Ssjg	${AR} ${ARFLAGS} $@ $*.o
133246149Ssjg	rm -f $*.o
134246149Ssjg.c.ln:
135246149Ssjg	${LINT} ${LINTFLAGS} ${CPPFLAGS:M-[IDU]*} -i ${.IMPSRC}
136246149Ssjg
137246149Ssjg# C++
138300313Ssjg${CXX_SUFFIXES}:
139246149Ssjg	${LINK.cc} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
140300313Ssjg${CXX_SUFFIXES:%=%.o}:
141246149Ssjg	${COMPILE.cc} ${.IMPSRC}
142300313Ssjg${CXX_SUFFIXES:%=%.a}:
143246149Ssjg	${COMPILE.cc} ${.IMPSRC}
144246149Ssjg	${AR} ${ARFLAGS} $@ $*.o
145246149Ssjg	rm -f $*.o
146246149Ssjg
147246149Ssjg# Fortran/Ratfor
148246149Ssjg.f:
149246149Ssjg	${LINK.f} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
150246149Ssjg.f.o:
151246149Ssjg	${COMPILE.f} ${.IMPSRC}
152246149Ssjg.f.a:
153246149Ssjg	${COMPILE.f} ${.IMPSRC}
154246149Ssjg	${AR} ${ARFLAGS} $@ $*.o
155246149Ssjg	rm -f $*.o
156246149Ssjg
157246149Ssjg.F:
158246149Ssjg	${LINK.F} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
159246149Ssjg.F.o:
160246149Ssjg	${COMPILE.F} ${.IMPSRC}
161246149Ssjg.F.a:
162246149Ssjg	${COMPILE.F} ${.IMPSRC}
163246149Ssjg	${AR} ${ARFLAGS} $@ $*.o
164246149Ssjg	rm -f $*.o
165246149Ssjg
166246149Ssjg.r:
167246149Ssjg	${LINK.r} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
168246149Ssjg.r.o:
169246149Ssjg	${COMPILE.r} ${.IMPSRC}
170246149Ssjg.r.a:
171246149Ssjg	${COMPILE.r} ${.IMPSRC}
172246149Ssjg	${AR} ${ARFLAGS} $@ $*.o
173246149Ssjg	rm -f $*.o
174246149Ssjg
175246149Ssjg# Pascal
176246149Ssjg.p:
177246149Ssjg	${LINK.p} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
178246149Ssjg.p.o:
179246149Ssjg	${COMPILE.p} ${.IMPSRC}
180246149Ssjg.p.a:
181246149Ssjg	${COMPILE.p} ${.IMPSRC}
182246149Ssjg	${AR} ${ARFLAGS} $@ $*.o
183246149Ssjg	rm -f $*.o
184246149Ssjg
185246149Ssjg# Assembly
186246149Ssjg.s:
187246149Ssjg	${LINK.s} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
188246149Ssjg.s.o:
189246149Ssjg	${COMPILE.s} ${.IMPSRC}
190246149Ssjg.s.a:
191246149Ssjg	${COMPILE.s} ${.IMPSRC}
192246149Ssjg	${AR} ${ARFLAGS} $@ $*.o
193246149Ssjg	rm -f $*.o
194246149Ssjg.S:
195246149Ssjg	${LINK.S} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
196246149Ssjg.S.o:
197246149Ssjg	${COMPILE.S} ${.IMPSRC}
198246149Ssjg.S.a:
199246149Ssjg	${COMPILE.S} ${.IMPSRC}
200246149Ssjg	${AR} ${ARFLAGS} $@ $*.o
201246149Ssjg	rm -f $*.o
202246149Ssjg
203246149Ssjg# Lex
204246149Ssjg.l:
205246149Ssjg	${LEX.l} ${.IMPSRC}
206246149Ssjg	${LINK.c} -o ${.TARGET} lex.yy.c ${LDLIBS} -ll
207246149Ssjg	rm -f lex.yy.c
208246149Ssjg.l.c:
209246149Ssjg	${LEX.l} ${.IMPSRC}
210246149Ssjg	mv lex.yy.c ${.TARGET}
211246149Ssjg.l.o:
212246149Ssjg	${LEX.l} ${.IMPSRC}
213246149Ssjg	${COMPILE.c} -o ${.TARGET} lex.yy.c 
214246149Ssjg	rm -f lex.yy.c
215246149Ssjg
216246149Ssjg# Yacc
217246149Ssjg.y:
218246149Ssjg	${YACC.y} ${.IMPSRC}
219246149Ssjg	${LINK.c} -o ${.TARGET} y.tab.c ${LDLIBS}
220246149Ssjg	rm -f y.tab.c
221246149Ssjg.y.c:
222246149Ssjg	${YACC.y} ${.IMPSRC}
223246149Ssjg	mv y.tab.c ${.TARGET}
224246149Ssjg.y.o:
225246149Ssjg	${YACC.y} ${.IMPSRC}
226246149Ssjg	${COMPILE.c} -o ${.TARGET} y.tab.c
227246149Ssjg	rm -f y.tab.c
228246149Ssjg
229246149Ssjg# Shell
230246149Ssjg.sh:
231246149Ssjg	rm -f ${.TARGET}
232246149Ssjg	cp ${.IMPSRC} ${.TARGET}
233