]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/bmake/mk/sys/Darwin.mk
Update to bmake-20200517
[FreeBSD/FreeBSD.git] / contrib / bmake / mk / sys / Darwin.mk
1 #       $NetBSD: Darwin.sys.mk,v 1.3 2003/02/16 09:44:41 grant Exp $
2 #       @(#)sys.mk      8.2 (Berkeley) 3/21/94
3
4 OS=             Darwin
5 unix?=          We run ${OS}.
6
7 .SUFFIXES: .out .a .ln .o .s .S .c .m ${CXX_SUFFIXES} .F .f .r .y .l .cl .p .h
8 .SUFFIXES: .sh .m4 .dylib
9
10 .LIBS:          .a .dylib
11
12 SHLIBEXT =      .dylib
13 HOST_LIBEXT =   .dylib
14 DSHLIBEXT =     .dylib
15
16 AR?=            ar
17 ARFLAGS?=       rl
18 RANLIB =
19
20 AS?=            as
21 AFLAGS?=
22 COMPILE.s?=     ${AS} ${AFLAGS}
23 LINK.s?=        ${CC} ${AFLAGS} ${LDFLAGS}
24 COMPILE.S?=     ${CC} ${AFLAGS} ${CPPFLAGS} -c
25 LINK.S?=        ${CC} ${AFLAGS} ${CPPFLAGS} ${LDFLAGS}
26
27 PIPE?=          -pipe
28
29 .if exists(/usr/bin/clang)
30 CC?=            cc ${PIPE}
31 CXX?=           c++
32 .elif exists(/usr/bin/gcc)
33 CC?=            gcc ${PIPE}
34 .else
35 CC?=            cc ${PIPE}
36 .endif
37 DBG?=           -O2
38 CFLAGS?=        ${DBG}
39 COMPILE.c?=     ${CC} ${CFLAGS} ${CPPFLAGS} -c
40 LINK.c?=        ${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}
41
42 .if exists(/usr/bin/g++)
43 CXX?=           g++
44 .else
45 CXX?=           c++
46 .endif
47 CXXFLAGS?=      ${CFLAGS}
48 COMPILE.cc?=    ${CXX} ${CXXFLAGS} ${CPPFLAGS} -c
49 LINK.cc?=       ${CXX} ${CXXFLAGS} ${CPPFLAGS} ${LDFLAGS}
50
51 OBJC?=          ${CC}
52 OBJCFLAGS?=     ${CFLAGS}
53 COMPILE.m?=     ${OBJC} ${OBJCFLAGS} ${CPPFLAGS} -c
54 LINK.m?=        ${OBJC} ${OBJCFLAGS} ${CPPFLAGS} ${LDFLAGS}
55
56 CPP?=           cpp
57 NOLINT=         1
58 CPPFLAGS?=
59
60 MK_DEP?=        mkdep
61
62 FC?=            f77
63 FFLAGS?=        -O
64 RFLAGS?=
65 COMPILE.f?=     ${FC} ${FFLAGS} -c
66 LINK.f?=        ${FC} ${FFLAGS} ${LDFLAGS}
67 COMPILE.F?=     ${FC} ${FFLAGS} ${CPPFLAGS} -c
68 LINK.F?=        ${FC} ${FFLAGS} ${CPPFLAGS} ${LDFLAGS}
69 COMPILE.r?=     ${FC} ${FFLAGS} ${RFLAGS} -c
70 LINK.r?=        ${FC} ${FFLAGS} ${RFLAGS} ${LDFLAGS}
71
72 INSTALL?=       install
73
74 LEX?=           lex
75 LFLAGS?=
76 LEX.l?=         ${LEX} ${LFLAGS}
77
78 LD?=            ld
79 LDFLAGS?=
80
81 SHLIB_TEENY = 0
82 SHLIB_MINOR = 0
83
84 MKPICLIB = no
85 LIBEXT = .dylib
86
87 LINT?=          lint
88 LINTFLAGS?=     -chapbx
89
90 LORDER?=        lorder
91
92 NM?=            nm
93
94 PC?=            pc
95 PFLAGS?=
96 COMPILE.p?=     ${PC} ${PFLAGS} ${CPPFLAGS} -c
97 LINK.p?=        ${PC} ${PFLAGS} ${CPPFLAGS} ${LDFLAGS}
98
99 SIZE?=          size
100
101 TSORT?=         tsort -q
102
103 YACC?=          bison -y
104 YFLAGS?=        -d
105 YACC.y?=        ${YACC} ${YFLAGS}
106
107 # C
108 .c:
109         ${LINK.c} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
110 .c.o:
111         ${COMPILE.c} ${.IMPSRC}
112 .c.a:
113         ${COMPILE.c} ${.IMPSRC}
114         ${AR} ${ARFLAGS} $@ $*.o
115         rm -f $*.o
116
117 # C++
118 ${CXX_SUFFIXES}:
119         ${LINK.cc} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
120 ${CXX_SUFFIXES:%=%.o}:
121         ${COMPILE.cc} ${.IMPSRC}
122 ${CXX_SUFFIXES:%=%.a}:
123         ${COMPILE.cc} ${.IMPSRC}
124         ${AR} ${ARFLAGS} $@ $*.o
125         rm -f $*.o
126
127 # Objective-C
128 .m:
129         ${LINK.m} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
130 .m.o:
131         ${COMPILE.m} ${.IMPSRC}
132 .m.a:
133         ${COMPILE.m} ${.IMPSRC}
134         ${AR} ${ARFLAGS} $@ $*.o
135         rm -f $*.o
136
137 # Fortran/Ratfor
138 .f:
139         ${LINK.f} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
140 .f.o:
141         ${COMPILE.f} ${.IMPSRC}
142 .f.a:
143         ${COMPILE.f} ${.IMPSRC}
144         ${AR} ${ARFLAGS} $@ $*.o
145         rm -f $*.o
146
147 .F:
148         ${LINK.F} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
149 .F.o:
150         ${COMPILE.F} ${.IMPSRC}
151 .F.a:
152         ${COMPILE.F} ${.IMPSRC}
153         ${AR} ${ARFLAGS} $@ $*.o
154         rm -f $*.o
155
156 .r:
157         ${LINK.r} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
158 .r.o:
159         ${COMPILE.r} ${.IMPSRC}
160 .r.a:
161         ${COMPILE.r} ${.IMPSRC}
162         ${AR} ${ARFLAGS} $@ $*.o
163         rm -f $*.o
164
165 # Pascal
166 .p:
167         ${LINK.p} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
168 .p.o:
169         ${COMPILE.p} ${.IMPSRC}
170 .p.a:
171         ${COMPILE.p} ${.IMPSRC}
172         ${AR} ${ARFLAGS} $@ $*.o
173         rm -f $*.o
174
175 # Assembly
176 .s:
177         ${LINK.s} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
178 .s.o:
179         ${COMPILE.s} -o ${.TARGET} ${.IMPSRC} 
180 .s.a:
181         ${COMPILE.s} ${.IMPSRC}
182         ${AR} ${ARFLAGS} $@ $*.o
183         rm -f $*.o
184 .S:
185         ${LINK.S} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
186 .S.o:
187         ${COMPILE.S} ${.IMPSRC}
188 .S.a:
189         ${COMPILE.S} ${.IMPSRC}
190         ${AR} ${ARFLAGS} $@ $*.o
191         rm -f $*.o
192
193 # Lex
194 .l:
195         ${LEX.l} ${.IMPSRC}
196         ${LINK.c} -o ${.TARGET} lex.yy.c ${LDLIBS} -ll
197         rm -f lex.yy.c
198 .l.c:
199         ${LEX.l} ${.IMPSRC}
200         mv lex.yy.c ${.TARGET}
201 .l.o:
202         ${LEX.l} ${.IMPSRC}
203         ${COMPILE.c} -o ${.TARGET} lex.yy.c 
204         rm -f lex.yy.c
205
206 # Yacc
207 .y:
208         ${YACC.y} ${.IMPSRC}
209         ${LINK.c} -o ${.TARGET} y.tab.c ${LDLIBS}
210         rm -f y.tab.c
211 .y.c:
212         ${YACC.y} ${.IMPSRC}
213         mv y.tab.c ${.TARGET}
214 .y.o:
215         ${YACC.y} ${.IMPSRC}
216         ${COMPILE.c} -o ${.TARGET} y.tab.c
217         rm -f y.tab.c
218
219 # Shell
220 .sh:
221         rm -f ${.TARGET}
222         cp ${.IMPSRC} ${.TARGET}