]> CyberLeo.Net >> Repos - FreeBSD/stable/10.git/blob - contrib/bmake/mk/sys/SunOS.mk
MFC r368207,368607:
[FreeBSD/stable/10.git] / contrib / bmake / mk / sys / SunOS.mk
1 #       $Id: SunOS.mk,v 1.8 2017/05/05 18:02:17 sjg Exp $
2
3 .if ${.PARSEFILE} == "sys.mk"
4 .include <host-target.mk>
5
6 OS?=            SunOS.${HOST_OSMAJOR}
7 unix?=          We run ${OS}.
8 .endif
9
10 .if ${HOST_OSMAJOR} > 4
11 ROOT_GROUP=     root
12
13 SHLIB_FULLVERSION = ${SHLIB_MAJOR}
14
15 # suppress the dependency
16 LIBCRT0= /dev/null
17
18 .ifndef CC
19 # the PATH below may find an ancient gcc
20 CC := ${gcc:L:${M_whence}}
21 .export CC
22 .endif
23
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
27
28 DSHLIBEXT = .so
29 HOST_LIBDIRS = /usr/lib /lib /usr/sfw/lib
30
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
41
42 # the rest is common
43
44 .SUFFIXES: .out .a .ln .o .c ${CXX_SUFFIXES} .F .f .r .y .l .s .S .cl .p .h .sh .m4
45
46 .LIBS:          .a
47
48 AR=             ar
49 ARFLAGS=        rl
50
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}
70
71 CXX=            g++
72 CXXFLAGS=       ${CFLAGS}
73 COMPILE.cc=     ${CXX} ${CXXFLAGS} ${CPPFLAGS} -c
74 LINK.cc=        ${CXX} ${CXXFLAGS} ${CPPFLAGS} ${LDFLAGS}
75
76 .if defined(DESTDIR)
77 CPPFLAGS+=      -nostdinc -idirafter ${DESTDIR}/usr/include
78 .endif
79
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}
90
91 LEX=            lex
92 LFLAGS=
93 LEX.l=          ${LEX} ${LFLAGS}
94
95 LD=             ld
96 LDFLAGS=
97
98 LINT=           lint
99 LINTFLAGS=      -chapbx
100
101 PC=             pc
102 PFLAGS=
103 COMPILE.p=      ${PC} ${PFLAGS} ${CPPFLAGS} -c
104 LINK.p=         ${PC} ${PFLAGS} ${CPPFLAGS} ${LDFLAGS}
105
106 SHELL=          sh
107
108 .if exists(/usr/local/bin/bison) || exists(/opt/gnu/bin/bison)
109 YACC=           bison -y
110 .else
111 YACC=           yacc
112 .endif
113 YFLAGS=         -d
114 YACC.y=         ${YACC} ${YFLAGS}
115
116 # C
117 .c:
118         ${LINK.c} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
119 .c.o:
120         ${COMPILE.c} ${.IMPSRC}
121 .c.a:
122         ${COMPILE.c} ${.IMPSRC}
123         ${AR} ${ARFLAGS} $@ $*.o
124         rm -f $*.o
125
126 # C++
127 ${CXX_SUFFIXES}:
128         ${LINK.cc} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
129 ${CXX_SUFFIXES:%=%.o}:
130         ${COMPILE.cc} ${.IMPSRC}
131 ${CXX_SUFFIXES:%=%.a}:
132         ${COMPILE.cc} ${.IMPSRC}
133         ${AR} ${ARFLAGS} $@ $*.o
134         rm -f $*.o
135
136 # Fortran/Ratfor
137 .f:
138         ${LINK.f} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
139 .f.o:
140         ${COMPILE.f} ${.IMPSRC}
141 .f.a:
142         ${COMPILE.f} ${.IMPSRC}
143         ${AR} ${ARFLAGS} $@ $*.o
144         rm -f $*.o
145
146 .F:
147         ${LINK.F} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
148 .F.o:
149         ${COMPILE.F} ${.IMPSRC}
150 .F.a:
151         ${COMPILE.F} ${.IMPSRC}
152         ${AR} ${ARFLAGS} $@ $*.o
153         rm -f $*.o
154
155 .r:
156         ${LINK.r} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
157 .r.o:
158         ${COMPILE.r} ${.IMPSRC}
159 .r.a:
160         ${COMPILE.r} ${.IMPSRC}
161         ${AR} ${ARFLAGS} $@ $*.o
162         rm -f $*.o
163
164 # Pascal
165 .p:
166         ${LINK.p} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
167 .p.o:
168         ${COMPILE.p} ${.IMPSRC}
169 .p.a:
170         ${COMPILE.p} ${.IMPSRC}
171         ${AR} ${ARFLAGS} $@ $*.o
172         rm -f $*.o
173
174 # Assembly
175 .s:
176         ${LINK.s} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
177 .s.o:
178         ${COMPILE.s} ${.IMPSRC}
179 .s.a:
180         ${COMPILE.s} ${.IMPSRC}
181         ${AR} ${ARFLAGS} $@ $*.o
182         rm -f $*.o
183 .S:
184         ${LINK.S} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
185 .S.o:
186         ${COMPILE.S} ${.IMPSRC}
187 .S.a:
188         ${COMPILE.S} ${.IMPSRC}
189         ${AR} ${ARFLAGS} $@ $*.o
190         rm -f $*.o
191
192 # Lex
193 .l:
194         ${LEX.l} ${.IMPSRC}
195         ${LINK.c} -o ${.TARGET} lex.yy.c ${LDLIBS} -ll
196         rm -f lex.yy.c
197 .l.c:
198         ${LEX.l} ${.IMPSRC}
199         mv lex.yy.c ${.TARGET}
200 .l.o:
201         ${LEX.l} ${.IMPSRC}
202         ${COMPILE.c} -o ${.TARGET} lex.yy.c 
203         rm -f lex.yy.c
204
205 # Yacc
206 .y:
207         ${YACC.y} ${.IMPSRC}
208         ${LINK.c} -o ${.TARGET} y.tab.c ${LDLIBS}
209         rm -f y.tab.c
210 .y.c:
211         ${YACC.y} ${.IMPSRC}
212         mv y.tab.c ${.TARGET}
213 .y.o:
214         ${YACC.y} ${.IMPSRC}
215         ${COMPILE.c} -o ${.TARGET} y.tab.c
216         rm -f y.tab.c
217
218 # Shell
219 .sh:
220         rm -f ${.TARGET}
221         cp ${.IMPSRC} ${.TARGET}