Update to bmake-20141111 on the vendor branch
[dragonfly.git] / contrib / bmake / mk / sys / SunOS.mk
blob73f8062794e2777367f3e757d47a4d7b037da817
1 # $Id: SunOS.mk,v 1.6 2014/04/05 22:56:54 sjg Exp $
3 .if ${.PARSEFILE} == "sys.mk"
4 .include <host-target.mk>
6 OS?= SunOS.${HOST_OSMAJOR}
7 unix?= We run ${OS}.
8 .endif
10 .if ${HOST_OSMAJOR} > 4
11 ROOT_GROUP= root
13 SHLIB_FULLVERSION = ${SHLIB_MAJOR}
15 # suppress the dependency
16 LIBCRT0= /dev/null
18 .ifndef CC
19 # the PATH below may find an ancient gcc
20 CC := ${gcc:L:${M_whence}}
21 .export CC
22 .endif
24 # the stuff in /usr/xpg4/bin is usually more sane.
25 PATH=/usr/xpg4/bin:/usr/sbin:/usr/bin:/usr/ucb:/usr/sfw/bin:/opt/gnu/bin:/usr/ccs/bin:/usr/local/bin
26 .export PATH
28 DSHLIBEXT = .so
29 HOST_LIBDIRS = /usr/lib /lib /usr/sfw/lib
31 # no -X
32 LD_X=
33 LD_x=
34 RANLIB= :
35 CPP= /usr/ccs/lib/cpp
36 .else
37 ROOT_GROUP= wheel
38 RANLIB= ranlib
39 CPP= cpp
40 .endif
42 # the rest is common
44 .SUFFIXES: .out .a .ln .o .c .cc .C .F .f .r .y .l .s .S .cl .p .h .sh .m4
46 .LIBS: .a
48 AR= ar
49 ARFLAGS= rl
51 AS= as
52 AS_STDIN= -
53 AFLAGS=
54 COMPILE.s= ${AS} ${AFLAGS}
55 LINK.s= ${CC} ${AFLAGS} ${LDFLAGS}
56 COMPILE.S= ${CC} ${AFLAGS} ${CPPFLAGS} -c
57 LINK.S= ${CC} ${AFLAGS} ${CPPFLAGS} ${LDFLAGS}
58 .if exists(/opt/gnu/bin/gcc) || exists(/usr/local/bin/gcc)
59 CC ?= gcc -pipe
60 DBG= -O -g
61 STATIC= -static
62 .else
63 CC ?= cc
64 DBG= -g
65 STATIC= -Bstatic
66 .endif
67 CFLAGS= ${DBG}
68 COMPILE.c= ${CC} ${CFLAGS} ${CPPFLAGS} -c
69 LINK.c= ${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}
71 CXX= g++
72 CXXFLAGS= ${CFLAGS}
73 COMPILE.cc= ${CXX} ${CXXFLAGS} ${CPPFLAGS} -c
74 LINK.cc= ${CXX} ${CXXFLAGS} ${CPPFLAGS} ${LDFLAGS}
76 .if defined(DESTDIR)
77 CPPFLAGS+= -nostdinc -idirafter ${DESTDIR}/usr/include
78 .endif
80 MK_DEP= mkdeps.sh -N
81 FC= f77
82 FFLAGS= -O
83 RFLAGS=
84 COMPILE.f= ${FC} ${FFLAGS} -c
85 LINK.f= ${FC} ${FFLAGS} ${LDFLAGS}
86 COMPILE.F= ${FC} ${FFLAGS} ${CPPFLAGS} -c
87 LINK.F= ${FC} ${FFLAGS} ${CPPFLAGS} ${LDFLAGS}
88 COMPILE.r= ${FC} ${FFLAGS} ${RFLAGS} -c
89 LINK.r= ${FC} ${FFLAGS} ${RFLAGS} ${LDFLAGS}
91 LEX= lex
92 LFLAGS=
93 LEX.l= ${LEX} ${LFLAGS}
95 LD= ld
96 LDFLAGS=
98 LINT= lint
99 LINTFLAGS= -chapbx
101 MAKE= bmake
103 PC= pc
104 PFLAGS=
105 COMPILE.p= ${PC} ${PFLAGS} ${CPPFLAGS} -c
106 LINK.p= ${PC} ${PFLAGS} ${CPPFLAGS} ${LDFLAGS}
108 SHELL= sh
110 .if exists(/usr/local/bin/bison) || exists(/opt/gnu/bin/bison)
111 YACC= bison -y
112 .else
113 YACC= yacc
114 .endif
115 YFLAGS= -d
116 YACC.y= ${YACC} ${YFLAGS}
120 ${LINK.c} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
121 .c.o:
122 ${COMPILE.c} ${.IMPSRC}
123 .c.a:
124 ${COMPILE.c} ${.IMPSRC}
125 ${AR} ${ARFLAGS} $@ $*.o
126 rm -f $*.o
128 # C++
129 .cc:
130 ${LINK.cc} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
131 .cc.o:
132 ${COMPILE.cc} ${.IMPSRC}
133 .cc.a:
134 ${COMPILE.cc} ${.IMPSRC}
135 ${AR} ${ARFLAGS} $@ $*.o
136 rm -f $*.o
139 ${LINK.cc} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
140 .C.o:
141 ${COMPILE.cc} ${.IMPSRC}
142 .C.a:
143 ${COMPILE.cc} ${.IMPSRC}
144 ${AR} ${ARFLAGS} $@ $*.o
145 rm -f $*.o
147 # Fortran/Ratfor
149 ${LINK.f} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
150 .f.o:
151 ${COMPILE.f} ${.IMPSRC}
152 .f.a:
153 ${COMPILE.f} ${.IMPSRC}
154 ${AR} ${ARFLAGS} $@ $*.o
155 rm -f $*.o
158 ${LINK.F} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
159 .F.o:
160 ${COMPILE.F} ${.IMPSRC}
161 .F.a:
162 ${COMPILE.F} ${.IMPSRC}
163 ${AR} ${ARFLAGS} $@ $*.o
164 rm -f $*.o
167 ${LINK.r} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
168 .r.o:
169 ${COMPILE.r} ${.IMPSRC}
170 .r.a:
171 ${COMPILE.r} ${.IMPSRC}
172 ${AR} ${ARFLAGS} $@ $*.o
173 rm -f $*.o
175 # Pascal
177 ${LINK.p} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
178 .p.o:
179 ${COMPILE.p} ${.IMPSRC}
180 .p.a:
181 ${COMPILE.p} ${.IMPSRC}
182 ${AR} ${ARFLAGS} $@ $*.o
183 rm -f $*.o
185 # Assembly
187 ${LINK.s} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
188 .s.o:
189 ${COMPILE.s} ${.IMPSRC}
190 .s.a:
191 ${COMPILE.s} ${.IMPSRC}
192 ${AR} ${ARFLAGS} $@ $*.o
193 rm -f $*.o
195 ${LINK.S} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
196 .S.o:
197 ${COMPILE.S} ${.IMPSRC}
198 .S.a:
199 ${COMPILE.S} ${.IMPSRC}
200 ${AR} ${ARFLAGS} $@ $*.o
201 rm -f $*.o
203 # Lex
205 ${LEX.l} ${.IMPSRC}
206 ${LINK.c} -o ${.TARGET} lex.yy.c ${LDLIBS} -ll
207 rm -f lex.yy.c
208 .l.c:
209 ${LEX.l} ${.IMPSRC}
210 mv lex.yy.c ${.TARGET}
211 .l.o:
212 ${LEX.l} ${.IMPSRC}
213 ${COMPILE.c} -o ${.TARGET} lex.yy.c
214 rm -f lex.yy.c
216 # Yacc
218 ${YACC.y} ${.IMPSRC}
219 ${LINK.c} -o ${.TARGET} y.tab.c ${LDLIBS}
220 rm -f y.tab.c
221 .y.c:
222 ${YACC.y} ${.IMPSRC}
223 mv y.tab.c ${.TARGET}
224 .y.o:
225 ${YACC.y} ${.IMPSRC}
226 ${COMPILE.c} -o ${.TARGET} y.tab.c
227 rm -f y.tab.c
229 # Shell
230 .sh:
231 rm -f ${.TARGET}
232 cp ${.IMPSRC} ${.TARGET}