1246149Ssjg#	$Id: SunOS.mk,v 1.5 2010/01/11 23:02:05 sjg Exp $
2246149Ssjg
3246149Ssjg.if ${.PARSEFILE} == "sys.mk"
4246149Ssjg.include <host-target.mk>
5246149Ssjg
6246149SsjgOS?=		SunOS.${HOST_OSMAJOR}
7246149Ssjgunix?=		We run ${OS}.
8246149Ssjg.endif
9246149Ssjg
10246149Ssjg.if ${HOST_OSMAJOR} > 4
11246149SsjgROOT_GROUP=	root
12246149Ssjg
13246149SsjgSHLIB_FULLVERSION = ${SHLIB_MAJOR}
14246149Ssjg
15246149Ssjg# supress the dependency
16246149SsjgLIBCRT0= /dev/null
17246149Ssjg
18246149Ssjg.ifndef CC
19246149Ssjg# the PATH below may find an ancient gcc
20246149SsjgCC := ${gcc:L:${M_whence}}
21246149Ssjg.export CC
22246149Ssjg.endif
23246149Ssjg
24246149Ssjg# the stuff in /usr/xpg4/bin is usually more sane.
25246149SsjgPATH=/usr/xpg4/bin:/usr/sbin:/usr/bin:/usr/ucb:/usr/sfw/bin:/opt/gnu/bin:/usr/ccs/bin:/usr/local/bin
26246149Ssjg.export PATH
27246149Ssjg
28246149SsjgDSHLIBEXT = .so
29246149SsjgHOST_LIBDIRS = /usr/lib /lib /usr/sfw/lib
30246149Ssjg
31246149Ssjg# no -X
32246149SsjgLD_X=
33246149SsjgLD_x=
34246149SsjgRANLIB=		:
35246149SsjgCPP=		/usr/ccs/lib/cpp
36246149Ssjg.else
37246149SsjgROOT_GROUP=	wheel
38246149SsjgRANLIB=		ranlib
39246149SsjgCPP=		cpp
40246149Ssjg.endif
41246149Ssjg
42246149Ssjg# the rest is common
43246149Ssjg
44246149Ssjg.SUFFIXES: .out .a .ln .o .c .cc .C .F .f .r .y .l .s .S .cl .p .h .sh .m4
45246149Ssjg
46246149Ssjg.LIBS:		.a
47246149Ssjg
48246149SsjgAR=		ar
49246149SsjgARFLAGS=	rl
50246149Ssjg
51246149SsjgAS=		as
52246149SsjgAS_STDIN=	-
53246149SsjgAFLAGS=
54246149SsjgCOMPILE.s=	${AS} ${AFLAGS}
55246149SsjgLINK.s=		${CC} ${AFLAGS} ${LDFLAGS}
56246149SsjgCOMPILE.S=	${CC} ${AFLAGS} ${CPPFLAGS} -c
57246149SsjgLINK.S=		${CC} ${AFLAGS} ${CPPFLAGS} ${LDFLAGS}
58246149Ssjg.if exists(/opt/gnu/bin/gcc) || exists(/usr/local/bin/gcc)
59246149SsjgCC ?=		gcc -pipe
60246149SsjgDBG=		-O -g
61246149SsjgSTATIC=		-static
62246149Ssjg.else
63246149SsjgCC ?=             cc
64246149SsjgDBG=         -g
65246149SsjgSTATIC=         -Bstatic
66246149Ssjg.endif
67246149SsjgCFLAGS=		${DBG}
68246149SsjgCOMPILE.c=	${CC} ${CFLAGS} ${CPPFLAGS} -c
69246149SsjgLINK.c=		${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}
70246149Ssjg
71246149SsjgCXX=		g++
72246149SsjgCXXFLAGS=	${CFLAGS}
73246149SsjgCOMPILE.cc=	${CXX} ${CXXFLAGS} ${CPPFLAGS} -c
74246149SsjgLINK.cc=	${CXX} ${CXXFLAGS} ${CPPFLAGS} ${LDFLAGS}
75246149Ssjg
76246149Ssjg.if defined(DESTDIR)
77246149SsjgCPPFLAGS+=	-nostdinc -idirafter ${DESTDIR}/usr/include
78246149Ssjg.endif
79246149Ssjg
80246149SsjgMK_DEP=	mkdeps.sh -N
81246149SsjgFC=		f77
82246149SsjgFFLAGS=		-O
83246149SsjgRFLAGS=
84246149SsjgCOMPILE.f=	${FC} ${FFLAGS} -c
85246149SsjgLINK.f=		${FC} ${FFLAGS} ${LDFLAGS}
86246149SsjgCOMPILE.F=	${FC} ${FFLAGS} ${CPPFLAGS} -c
87246149SsjgLINK.F=		${FC} ${FFLAGS} ${CPPFLAGS} ${LDFLAGS}
88246149SsjgCOMPILE.r=	${FC} ${FFLAGS} ${RFLAGS} -c
89246149SsjgLINK.r=		${FC} ${FFLAGS} ${RFLAGS} ${LDFLAGS}
90246149Ssjg
91246149SsjgLEX=		lex
92246149SsjgLFLAGS=
93246149SsjgLEX.l=		${LEX} ${LFLAGS}
94246149Ssjg
95246149SsjgLD=		ld
96246149SsjgLDFLAGS=
97246149Ssjg
98246149SsjgLINT=		lint
99246149SsjgLINTFLAGS=	-chapbx
100246149Ssjg
101246149SsjgMAKE=		bmake
102246149Ssjg
103246149SsjgPC=		pc
104246149SsjgPFLAGS=
105246149SsjgCOMPILE.p=	${PC} ${PFLAGS} ${CPPFLAGS} -c
106246149SsjgLINK.p=		${PC} ${PFLAGS} ${CPPFLAGS} ${LDFLAGS}
107246149Ssjg
108246149SsjgSHELL=		sh
109246149Ssjg
110246149Ssjg.if exists(/usr/local/bin/bison) || exists(/opt/gnu/bin/bison)
111246149SsjgYACC=		bison -y
112246149Ssjg.else
113246149SsjgYACC=		yacc
114246149Ssjg.endif
115246149SsjgYFLAGS=		-d
116246149SsjgYACC.y=		${YACC} ${YFLAGS}
117246149Ssjg
118246149Ssjg# C
119246149Ssjg.c:
120246149Ssjg	${LINK.c} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
121246149Ssjg.c.o:
122246149Ssjg	${COMPILE.c} ${.IMPSRC}
123246149Ssjg.c.a:
124246149Ssjg	${COMPILE.c} ${.IMPSRC}
125246149Ssjg	${AR} ${ARFLAGS} $@ $*.o
126246149Ssjg	rm -f $*.o
127246149Ssjg
128246149Ssjg# C++
129246149Ssjg.cc:
130246149Ssjg	${LINK.cc} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
131246149Ssjg.cc.o:
132246149Ssjg	${COMPILE.cc} ${.IMPSRC}
133246149Ssjg.cc.a:
134246149Ssjg	${COMPILE.cc} ${.IMPSRC}
135246149Ssjg	${AR} ${ARFLAGS} $@ $*.o
136246149Ssjg	rm -f $*.o
137246149Ssjg
138246149Ssjg.C:
139246149Ssjg	${LINK.cc} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
140246149Ssjg.C.o:
141246149Ssjg	${COMPILE.cc} ${.IMPSRC}
142246149Ssjg.C.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