]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/bmake/mk/sys/SunOS.mk
Update to bmake-20200517
[FreeBSD/FreeBSD.git] / contrib / bmake / mk / sys / SunOS.mk
1 #       $Id: SunOS.mk,v 1.9 2020/04/17 21:08: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 .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}