]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/bmake/mk/sys/SunOS.mk
Update to bmake-20200704
[FreeBSD/FreeBSD.git] / contrib / bmake / mk / sys / SunOS.mk
1 #       $Id: SunOS.mk,v 1.11 2020/06/29 14:34:42 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 .if exists(/usr/local/bin/bison) || exists(/opt/gnu/bin/bison)
107 YACC ?=         bison -y
108 .else
109 YACC ?=         yacc
110 .endif
111 YFLAGS ?=               -d
112 YACC.y ?=               ${YACC} ${YFLAGS}
113
114 # C
115 .c:
116         ${LINK.c} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
117 .c.o:
118         ${COMPILE.c} ${.IMPSRC}
119 .c.a:
120         ${COMPILE.c} ${.IMPSRC}
121         ${AR} ${ARFLAGS} $@ $*.o
122         rm -f $*.o
123
124 # C++
125 ${CXX_SUFFIXES}:
126         ${LINK.cc} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
127 ${CXX_SUFFIXES:%=%.o}:
128         ${COMPILE.cc} ${.IMPSRC}
129 ${CXX_SUFFIXES:%=%.a}:
130         ${COMPILE.cc} ${.IMPSRC}
131         ${AR} ${ARFLAGS} $@ $*.o
132         rm -f $*.o
133
134 # Fortran/Ratfor
135 .f:
136         ${LINK.f} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
137 .f.o:
138         ${COMPILE.f} ${.IMPSRC}
139 .f.a:
140         ${COMPILE.f} ${.IMPSRC}
141         ${AR} ${ARFLAGS} $@ $*.o
142         rm -f $*.o
143
144 .F:
145         ${LINK.F} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
146 .F.o:
147         ${COMPILE.F} ${.IMPSRC}
148 .F.a:
149         ${COMPILE.F} ${.IMPSRC}
150         ${AR} ${ARFLAGS} $@ $*.o
151         rm -f $*.o
152
153 .r:
154         ${LINK.r} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
155 .r.o:
156         ${COMPILE.r} ${.IMPSRC}
157 .r.a:
158         ${COMPILE.r} ${.IMPSRC}
159         ${AR} ${ARFLAGS} $@ $*.o
160         rm -f $*.o
161
162 # Pascal
163 .p:
164         ${LINK.p} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
165 .p.o:
166         ${COMPILE.p} ${.IMPSRC}
167 .p.a:
168         ${COMPILE.p} ${.IMPSRC}
169         ${AR} ${ARFLAGS} $@ $*.o
170         rm -f $*.o
171
172 # Assembly
173 .s:
174         ${LINK.s} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
175 .s.o:
176         ${COMPILE.s} ${.IMPSRC}
177 .s.a:
178         ${COMPILE.s} ${.IMPSRC}
179         ${AR} ${ARFLAGS} $@ $*.o
180         rm -f $*.o
181 .S:
182         ${LINK.S} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
183 .S.o:
184         ${COMPILE.S} ${.IMPSRC}
185 .S.a:
186         ${COMPILE.S} ${.IMPSRC}
187         ${AR} ${ARFLAGS} $@ $*.o
188         rm -f $*.o
189
190 # Lex
191 .l:
192         ${LEX.l} ${.IMPSRC}
193         ${LINK.c} -o ${.TARGET} lex.yy.c ${LDLIBS} -ll
194         rm -f lex.yy.c
195 .l.c:
196         ${LEX.l} ${.IMPSRC}
197         mv lex.yy.c ${.TARGET}
198 .l.o:
199         ${LEX.l} ${.IMPSRC}
200         ${COMPILE.c} -o ${.TARGET} lex.yy.c 
201         rm -f lex.yy.c
202
203 # Yacc
204 .y:
205         ${YACC.y} ${.IMPSRC}
206         ${LINK.c} -o ${.TARGET} y.tab.c ${LDLIBS}
207         rm -f y.tab.c
208 .y.c:
209         ${YACC.y} ${.IMPSRC}
210         mv y.tab.c ${.TARGET}
211 .y.o:
212         ${YACC.y} ${.IMPSRC}
213         ${COMPILE.c} -o ${.TARGET} y.tab.c
214         rm -f y.tab.c
215
216 # Shell
217 .sh:
218         rm -f ${.TARGET}
219         cp ${.IMPSRC} ${.TARGET}