make includes fix from trunk
[minix.git] / etc / mk / sys.mk
blob5cc42e252291299fd369e546044bf376a506f749
1 # $NetBSD: sys.mk,v 1.99 2008/09/07 15:54:52 kent Exp $
2 # @(#)sys.mk 8.2 (Berkeley) 3/21/94
4 unix?= We run MINIX.
6 .SUFFIXES: .a .o .ln .s .S .c .cc .cpp .cxx .C .f .F .r .p .l .y #.sh
8 .LIBS: .a
10 AR?= ar
11 ARFLAGS?= rl
12 RANLIB?= ranlib
14 AS?= as
15 AFLAGS?=
16 COMPILE.s?= ${CC} ${AFLAGS} -c
17 LINK.s?= ${CC} ${AFLAGS} ${LDFLAGS}
18 #COMPILE.S?= ${CC} ${AFLAGS} ${CPPFLAGS} -c -traditional-cpp
19 COMPILE.S?= ${CC} ${AFLAGS} ${CPPFLAGS} -c
20 LINK.S?= ${CC} ${AFLAGS} ${CPPFLAGS} ${LDFLAGS}
22 CC?= cc
23 .if ${MACHINE_ARCH} == "alpha" || \
24 ${MACHINE_ARCH} == "arm" || \
25 ${MACHINE_ARCH} == "x86_64" || \
26 ${MACHINE_ARCH} == "armeb" || \
27 ${MACHINE_ARCH} == "hppa" || \
28 ${MACHINE_ARCH} == "i386" || \
29 ${MACHINE_ARCH} == "m68k" || \
30 ${MACHINE_ARCH} == "mipsel" || ${MACHINE_ARCH} == "mipseb" || \
31 ${MACHINE_ARCH} == "mips64el" || ${MACHINE_ARCH} == "mips64eb" || \
32 ${MACHINE_ARCH} == "powerpc" || \
33 ${MACHINE_ARCH} == "sparc" || \
34 ${MACHINE_ARCH} == "sparc64"
35 DBG?= -O2
36 .elif ${MACHINE_ARCH} == "sh3el" || ${MACHINE_ARCH} == "sh3eb"
37 # -O2 is too -falign-* zealous for low-memory sh3 machines
38 DBG?= -Os -freorder-blocks
39 .elif ${MACHINE_ARCH} == "vax"
40 DBG?= -O1 -fgcse -fstrength-reduce -fgcse-after-reload
41 .elif ${MACHINE_ARCH} == "m68000"
42 # see src/doc/HACKS for details
43 DBG?= -O1
44 .else
45 #XXX: Temporarily disable -O for MINIX
46 #DBG?= -O
47 DBG?=
48 .endif
49 CFLAGS?= ${DBG}
50 LDFLAGS?=
51 COMPILE.c?= ${CC} ${CFLAGS} ${CPPFLAGS} -c
52 LINK.c?= ${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}
54 CXX?= c++
55 CXXFLAGS?= ${CFLAGS:N-Wno-traditional:N-Wstrict-prototypes:N-Wmissing-prototypes:N-Wno-pointer-sign:N-ffreestanding:N-std=gnu99}
57 __ALLSRC1= ${empty(DESTDIR):?${.ALLSRC}:${.ALLSRC:S|^${DESTDIR}|^destdir|}}
58 __ALLSRC2= ${empty(MAKEOBJDIR):?${__ALLSRC1}:${__ALLSRC1:S|^${MAKEOBJDIR}|^obj|}}
59 __ALLSRC3= ${empty(NETBSDSRCDIR):?${__ALLSRC2}:${__ALLSRC2:S|^${NETBSDSRCDIR}|^src|}}
61 _CXXSEED?= ${BUILDSEED:D-frandom-seed=${BUILDSEED:Q}/${__ALLSRC3:O:Q}/${.TARGET:Q}}
63 COMPILE.cc?= ${CXX} ${_CXXSEED} ${CXXFLAGS} ${CPPFLAGS} -c
64 LINK.cc?= ${CXX} ${CXXFLAGS} ${CPPFLAGS} ${LDFLAGS}
66 OBJC?= ${CC}
67 OBJCFLAGS?= ${CFLAGS}
68 COMPILE.m?= ${OBJC} ${OBJCFLAGS} ${CPPFLAGS} -c
69 LINK.m?= ${OBJC} ${OBJCFLAGS} ${CPPFLAGS} ${LDFLAGS}
71 CPP?= cpp
72 CPPFLAGS?=
74 FC?= f77
75 FFLAGS?= -O
76 RFLAGS?=
77 COMPILE.f?= ${FC} ${FFLAGS} -c
78 LINK.f?= ${FC} ${FFLAGS} ${LDFLAGS}
79 COMPILE.F?= ${FC} ${FFLAGS} ${CPPFLAGS} -c
80 LINK.F?= ${FC} ${FFLAGS} ${CPPFLAGS} ${LDFLAGS}
81 COMPILE.r?= ${FC} ${FFLAGS} ${RFLAGS} -c
82 LINK.r?= ${FC} ${FFLAGS} ${RFLAGS} ${LDFLAGS}
84 INSTALL?= install
86 LD?= ld
88 LEX?= lex
89 LFLAGS?=
90 LEX.l?= ${LEX} ${LFLAGS}
92 LINT?= lint
93 LINTFLAGS?= -chapbxzFS
95 LORDER?= lorder
97 MAKE?= make
99 NM?= nm
101 PC?= pc
102 PFLAGS?=
103 COMPILE.p?= ${PC} ${PFLAGS} ${CPPFLAGS} -c
104 LINK.p?= ${PC} ${PFLAGS} ${CPPFLAGS} ${LDFLAGS}
106 SHELL?= sh
108 SIZE?= size
110 TSORT?= tsort -q
112 YACC?= yacc
113 YFLAGS?=
114 YACC.y?= ${YACC} ${YFLAGS}
118 ${LINK.c} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
119 .c.o:
120 ${COMPILE.c} ${.IMPSRC}
121 .c.a:
122 ${COMPILE.c} ${.IMPSRC}
123 ${AR} ${ARFLAGS} ${.TARGET} ${.PREFIX}.o
124 rm -f ${.PREFIX}.o
125 .c.ln:
126 ${LINT} ${LINTFLAGS} \
127 ${CPPFLAGS:C/-([IDU])[ ]*/-\1/Wg:M-[IDU]*} \
128 -i ${.IMPSRC}
130 # C++
131 .cc .cpp .cxx .C:
132 ${LINK.cc} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
133 .cc.o .cpp.o .cxx.o .C.o:
134 ${COMPILE.cc} ${.IMPSRC}
135 .cc.a .cpp.a .cxx.a .C.a:
136 ${COMPILE.cc} ${.IMPSRC}
137 ${AR} ${ARFLAGS} ${.TARGET} ${.PREFIX}.o
138 rm -f ${.PREFIX}.o
140 # Fortran/Ratfor
142 ${LINK.f} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
143 .f.o:
144 ${COMPILE.f} ${.IMPSRC}
145 .f.a:
146 ${COMPILE.f} ${.IMPSRC}
147 ${AR} ${ARFLAGS} ${.TARGET} ${.PREFIX}.o
148 rm -f ${.PREFIX}.o
151 ${LINK.F} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
152 .F.o:
153 ${COMPILE.F} ${.IMPSRC}
154 .F.a:
155 ${COMPILE.F} ${.IMPSRC}
156 ${AR} ${ARFLAGS} ${.TARGET} ${.PREFIX}.o
157 rm -f ${.PREFIX}.o
160 ${LINK.r} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
161 .r.o:
162 ${COMPILE.r} ${.IMPSRC}
163 .r.a:
164 ${COMPILE.r} ${.IMPSRC}
165 ${AR} ${ARFLAGS} ${.TARGET} ${.PREFIX}.o
166 rm -f ${.PREFIX}.o
168 # Pascal
170 ${LINK.p} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
171 .p.o:
172 ${COMPILE.p} ${.IMPSRC}
173 .p.a:
174 ${COMPILE.p} ${.IMPSRC}
175 ${AR} ${ARFLAGS} ${.TARGET} ${.PREFIX}.o
176 rm -f ${.PREFIX}.o
178 # Assembly
180 ${LINK.s} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
181 .s.o:
182 ${COMPILE.s} ${.IMPSRC}
183 .s.a:
184 ${COMPILE.s} ${.IMPSRC}
185 ${AR} ${ARFLAGS} ${.TARGET} ${.PREFIX}.o
186 rm -f ${.PREFIX}.o
188 ${LINK.S} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
189 .S.o:
190 ${COMPILE.S} ${.IMPSRC}
191 .S.a:
192 ${COMPILE.S} ${.IMPSRC}
193 ${AR} ${ARFLAGS} ${.TARGET} ${.PREFIX}.o
194 rm -f ${.PREFIX}.o
196 # Lex
198 ${LEX.l} ${.IMPSRC}
199 ${LINK.c} -o ${.TARGET} lex.yy.c ${LDLIBS} -ll
200 rm -f lex.yy.c
201 .l.c:
202 ${LEX.l} ${.IMPSRC}
203 mv lex.yy.c ${.TARGET}
204 .l.o:
205 ${LEX.l} ${.IMPSRC}
206 ${COMPILE.c} -o ${.TARGET} lex.yy.c
207 rm -f lex.yy.c
209 # Yacc
211 ${YACC.y} ${.IMPSRC}
212 ${LINK.c} -o ${.TARGET} y.tab.c ${LDLIBS}
213 rm -f y.tab.c
214 .y.c:
215 ${YACC.y} ${.IMPSRC}
216 mv y.tab.c ${.TARGET}
217 .y.o:
218 ${YACC.y} ${.IMPSRC}
219 ${COMPILE.c} -o ${.TARGET} y.tab.c
220 rm -f y.tab.c
222 # Shell
223 # .sh:
224 # rm -f ${.TARGET}
225 # cp ${.IMPSRC} ${.TARGET}
226 # chmod a+x ${.TARGET}
228 # MINIX
229 .if !empty(CC:Mcc)
230 COMPILER_TYPE=ack
231 .elif !empty(CC:Mgcc)
232 COMPILER_TYPE=gnu
233 AR=gar
234 .endif