]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/bmake/mk/sys/Linux.mk
Update to bmake-20200704
[FreeBSD/FreeBSD.git] / contrib / bmake / mk / sys / Linux.mk
1 #       $Id: Linux.mk,v 1.12 2020/06/29 14:34:42 sjg Exp $
2 #       $NetBSD: sys.mk,v 1.19.2.1 1994/07/26 19:58:31 cgd Exp $
3 #       @(#)sys.mk      5.11 (Berkeley) 3/13/91
4
5 OS ?=           Linux
6 unix ?=         We run ${OS}.
7
8 ROOT_GROUP ?=   root
9
10 # would be better to work out where it is...
11 LIBCRT0 ?= /dev/null
12
13 NEED_SOLINKS ?=yes
14
15 .SUFFIXES: .out .a .ln .o .c ${CXX_SUFFIXES} .F .f .r .y .l .s .S .cl .p .h .sh .m4
16
17 .LIBS:          .a
18
19 AR ?=           ar
20 ARFLAGS ?=      rl
21 RANLIB ?=               ranlib
22
23 AS ?=           as
24 AFLAGS=
25 COMPILE.s ?=    ${AS} ${AFLAGS}
26 LINK.s ?=               ${CC} ${AFLAGS} ${LDFLAGS}
27 COMPILE.S ?=    ${CC} ${AFLAGS} ${CPPFLAGS} -c
28 LINK.S ?=               ${CC} ${AFLAGS} ${CPPFLAGS} ${LDFLAGS}
29 .if exists(/usr/local/bin/gcc)
30 CC ?=           gcc -pipe
31 DBG ?=          -O -g
32 STATIC ?=               -static
33 .else
34 CC ?=             cc -pipe
35 DBG ?=         -g
36 STATIC ?=         -Bstatic
37 .endif
38 CFLAGS ?=               ${DBG}
39 COMPILE.c ?=    ${CC} ${CFLAGS} ${CPPFLAGS} -c
40 LINK.c ?=               ${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}
41
42 CXX ?=          g++
43 CXXFLAGS ?=     ${CFLAGS}
44 COMPILE.cc ?=   ${CXX} ${CXXFLAGS} ${CPPFLAGS} -c
45 LINK.cc ?=      ${CXX} ${CXXFLAGS} ${CPPFLAGS} ${LDFLAGS}
46
47 CPP ?=          cpp
48 .if defined(DESTDIR)
49 CPPFLAGS+=      -nostdinc -idirafter ${DESTDIR}/usr/include
50 .endif
51
52 MK_DEP ?=       mkdeps.sh -N
53 FC ?=           f77
54 FFLAGS ?=               -O
55 RFLAGS=
56 COMPILE.f ?=    ${FC} ${FFLAGS} -c
57 LINK.f ?=               ${FC} ${FFLAGS} ${LDFLAGS}
58 COMPILE.F ?=    ${FC} ${FFLAGS} ${CPPFLAGS} -c
59 LINK.F ?=               ${FC} ${FFLAGS} ${CPPFLAGS} ${LDFLAGS}
60 COMPILE.r ?=    ${FC} ${FFLAGS} ${RFLAGS} -c
61 LINK.r ?=               ${FC} ${FFLAGS} ${RFLAGS} ${LDFLAGS}
62
63 LEX ?=          lex
64 LFLAGS=
65 LEX.l ?=                ${LEX} ${LFLAGS}
66
67 LD ?=           ld
68 LDFLAGS=
69
70 LINT ?=         lint
71 LINTFLAGS ?=    -chapbx
72
73 PC ?=           pc
74 PFLAGS=
75 COMPILE.p ?=    ${PC} ${PFLAGS} ${CPPFLAGS} -c
76 LINK.p ?=               ${PC} ${PFLAGS} ${CPPFLAGS} ${LDFLAGS}
77
78 YACC ?=         yacc
79 YFLAGS ?=               -d
80 YACC.y ?=               ${YACC} ${YFLAGS}
81
82 # C
83 .c:
84         ${LINK.c} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
85 .c.o:
86         ${COMPILE.c} ${.IMPSRC}
87 .c.a:
88         ${COMPILE.c} ${.IMPSRC}
89         ${AR} ${ARFLAGS} $@ $*.o
90         rm -f $*.o
91
92 # C++
93 ${CXX_SUFFIXES}:
94         ${LINK.cc} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
95 ${CXX_SUFFIXES:%=%.o}:
96         ${COMPILE.cc} ${.IMPSRC}
97 ${CXX_SUFFIXES:%=%.a}:
98         ${COMPILE.cc} ${.IMPSRC}
99         ${AR} ${ARFLAGS} $@ $*.o
100         rm -f $*.o
101
102 # Fortran/Ratfor
103 .f:
104         ${LINK.f} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
105 .f.o:
106         ${COMPILE.f} ${.IMPSRC}
107 .f.a:
108         ${COMPILE.f} ${.IMPSRC}
109         ${AR} ${ARFLAGS} $@ $*.o
110         rm -f $*.o
111
112 .F:
113         ${LINK.F} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
114 .F.o:
115         ${COMPILE.F} ${.IMPSRC}
116 .F.a:
117         ${COMPILE.F} ${.IMPSRC}
118         ${AR} ${ARFLAGS} $@ $*.o
119         rm -f $*.o
120
121 .r:
122         ${LINK.r} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
123 .r.o:
124         ${COMPILE.r} ${.IMPSRC}
125 .r.a:
126         ${COMPILE.r} ${.IMPSRC}
127         ${AR} ${ARFLAGS} $@ $*.o
128         rm -f $*.o
129
130 # Pascal
131 .p:
132         ${LINK.p} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
133 .p.o:
134         ${COMPILE.p} ${.IMPSRC}
135 .p.a:
136         ${COMPILE.p} ${.IMPSRC}
137         ${AR} ${ARFLAGS} $@ $*.o
138         rm -f $*.o
139
140 # Assembly
141 .s:
142         ${LINK.s} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
143 .s.o:
144         ${COMPILE.s} -o ${.TARGET} ${.IMPSRC} 
145 .s.a:
146         ${COMPILE.s} ${.IMPSRC}
147         ${AR} ${ARFLAGS} $@ $*.o
148         rm -f $*.o
149 .S:
150         ${LINK.S} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
151 .S.o:
152         ${COMPILE.S} ${.IMPSRC}
153 .S.a:
154         ${COMPILE.S} ${.IMPSRC}
155         ${AR} ${ARFLAGS} $@ $*.o
156         rm -f $*.o
157
158 # Lex
159 .l:
160         ${LEX.l} ${.IMPSRC}
161         ${LINK.c} -o ${.TARGET} lex.yy.c ${LDLIBS} -ll
162         rm -f lex.yy.c
163 .l.c:
164         ${LEX.l} ${.IMPSRC}
165         mv lex.yy.c ${.TARGET}
166 .l.o:
167         ${LEX.l} ${.IMPSRC}
168         ${COMPILE.c} -o ${.TARGET} lex.yy.c 
169         rm -f lex.yy.c
170
171 # Yacc
172 .y:
173         ${YACC.y} ${.IMPSRC}
174         ${LINK.c} -o ${.TARGET} y.tab.c ${LDLIBS}
175         rm -f y.tab.c
176 .y.c:
177         ${YACC.y} ${.IMPSRC}
178         mv y.tab.c ${.TARGET}
179 .y.o:
180         ${YACC.y} ${.IMPSRC}
181         ${COMPILE.c} -o ${.TARGET} y.tab.c
182         rm -f y.tab.c
183
184 # Shell
185 .sh:
186         rm -f ${.TARGET}
187         cp ${.IMPSRC} ${.TARGET}