1321964Ssjg#	$Id: SunOS.mk,v 1.8 2017/05/05 18:02:17 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
15276305Sngie# suppress 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
44321964Ssjg.SUFFIXES: .out .a .ln .o .c ${CXX_SUFFIXES} .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
101246149SsjgPC=		pc
102246149SsjgPFLAGS=
103246149SsjgCOMPILE.p=	${PC} ${PFLAGS} ${CPPFLAGS} -c
104246149SsjgLINK.p=		${PC} ${PFLAGS} ${CPPFLAGS} ${LDFLAGS}
105246149Ssjg
106246149SsjgSHELL=		sh
107246149Ssjg
108246149Ssjg.if exists(/usr/local/bin/bison) || exists(/opt/gnu/bin/bison)
109246149SsjgYACC=		bison -y
110246149Ssjg.else
111246149SsjgYACC=		yacc
112246149Ssjg.endif
113246149SsjgYFLAGS=		-d
114246149SsjgYACC.y=		${YACC} ${YFLAGS}
115246149Ssjg
116246149Ssjg# C
117246149Ssjg.c:
118246149Ssjg	${LINK.c} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
119246149Ssjg.c.o:
120246149Ssjg	${COMPILE.c} ${.IMPSRC}
121246149Ssjg.c.a:
122246149Ssjg	${COMPILE.c} ${.IMPSRC}
123246149Ssjg	${AR} ${ARFLAGS} $@ $*.o
124246149Ssjg	rm -f $*.o
125246149Ssjg
126246149Ssjg# C++
127321964Ssjg${CXX_SUFFIXES}:
128246149Ssjg	${LINK.cc} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
129321964Ssjg${CXX_SUFFIXES:%=%.o}:
130246149Ssjg	${COMPILE.cc} ${.IMPSRC}
131321964Ssjg${CXX_SUFFIXES:%=%.a}:
132246149Ssjg	${COMPILE.cc} ${.IMPSRC}
133246149Ssjg	${AR} ${ARFLAGS} $@ $*.o
134246149Ssjg	rm -f $*.o
135246149Ssjg
136246149Ssjg# Fortran/Ratfor
137246149Ssjg.f:
138246149Ssjg	${LINK.f} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
139246149Ssjg.f.o:
140246149Ssjg	${COMPILE.f} ${.IMPSRC}
141246149Ssjg.f.a:
142246149Ssjg	${COMPILE.f} ${.IMPSRC}
143246149Ssjg	${AR} ${ARFLAGS} $@ $*.o
144246149Ssjg	rm -f $*.o
145246149Ssjg
146246149Ssjg.F:
147246149Ssjg	${LINK.F} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
148246149Ssjg.F.o:
149246149Ssjg	${COMPILE.F} ${.IMPSRC}
150246149Ssjg.F.a:
151246149Ssjg	${COMPILE.F} ${.IMPSRC}
152246149Ssjg	${AR} ${ARFLAGS} $@ $*.o
153246149Ssjg	rm -f $*.o
154246149Ssjg
155246149Ssjg.r:
156246149Ssjg	${LINK.r} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
157246149Ssjg.r.o:
158246149Ssjg	${COMPILE.r} ${.IMPSRC}
159246149Ssjg.r.a:
160246149Ssjg	${COMPILE.r} ${.IMPSRC}
161246149Ssjg	${AR} ${ARFLAGS} $@ $*.o
162246149Ssjg	rm -f $*.o
163246149Ssjg
164246149Ssjg# Pascal
165246149Ssjg.p:
166246149Ssjg	${LINK.p} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
167246149Ssjg.p.o:
168246149Ssjg	${COMPILE.p} ${.IMPSRC}
169246149Ssjg.p.a:
170246149Ssjg	${COMPILE.p} ${.IMPSRC}
171246149Ssjg	${AR} ${ARFLAGS} $@ $*.o
172246149Ssjg	rm -f $*.o
173246149Ssjg
174246149Ssjg# Assembly
175246149Ssjg.s:
176246149Ssjg	${LINK.s} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
177246149Ssjg.s.o:
178246149Ssjg	${COMPILE.s} ${.IMPSRC}
179246149Ssjg.s.a:
180246149Ssjg	${COMPILE.s} ${.IMPSRC}
181246149Ssjg	${AR} ${ARFLAGS} $@ $*.o
182246149Ssjg	rm -f $*.o
183246149Ssjg.S:
184246149Ssjg	${LINK.S} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
185246149Ssjg.S.o:
186246149Ssjg	${COMPILE.S} ${.IMPSRC}
187246149Ssjg.S.a:
188246149Ssjg	${COMPILE.S} ${.IMPSRC}
189246149Ssjg	${AR} ${ARFLAGS} $@ $*.o
190246149Ssjg	rm -f $*.o
191246149Ssjg
192246149Ssjg# Lex
193246149Ssjg.l:
194246149Ssjg	${LEX.l} ${.IMPSRC}
195246149Ssjg	${LINK.c} -o ${.TARGET} lex.yy.c ${LDLIBS} -ll
196246149Ssjg	rm -f lex.yy.c
197246149Ssjg.l.c:
198246149Ssjg	${LEX.l} ${.IMPSRC}
199246149Ssjg	mv lex.yy.c ${.TARGET}
200246149Ssjg.l.o:
201246149Ssjg	${LEX.l} ${.IMPSRC}
202246149Ssjg	${COMPILE.c} -o ${.TARGET} lex.yy.c 
203246149Ssjg	rm -f lex.yy.c
204246149Ssjg
205246149Ssjg# Yacc
206246149Ssjg.y:
207246149Ssjg	${YACC.y} ${.IMPSRC}
208246149Ssjg	${LINK.c} -o ${.TARGET} y.tab.c ${LDLIBS}
209246149Ssjg	rm -f y.tab.c
210246149Ssjg.y.c:
211246149Ssjg	${YACC.y} ${.IMPSRC}
212246149Ssjg	mv y.tab.c ${.TARGET}
213246149Ssjg.y.o:
214246149Ssjg	${YACC.y} ${.IMPSRC}
215246149Ssjg	${COMPILE.c} -o ${.TARGET} y.tab.c
216246149Ssjg	rm -f y.tab.c
217246149Ssjg
218246149Ssjg# Shell
219246149Ssjg.sh:
220246149Ssjg	rm -f ${.TARGET}
221246149Ssjg	cp ${.IMPSRC} ${.TARGET}
222