1 # $NetBSD: sys.mk,v 1.99 2008/09/07 15:54:52 kent Exp $
2 # @(#)sys.mk 8.2 (Berkeley) 3/21/94
6 .SUFFIXES
: .a .o .ln .s .S .c .
cc .
cpp .
cxx .C .f .F .r .p .l .y
#.sh
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}
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"
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
45 #XXX: Temporarily disable -O for MINIX
51 COMPILE.c?
= ${CC} ${CFLAGS} ${CPPFLAGS} -c
52 LINK.c?
= ${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}
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}
68 COMPILE.m?
= ${OBJC} ${OBJCFLAGS} ${CPPFLAGS} -c
69 LINK.m?
= ${OBJC} ${OBJCFLAGS} ${CPPFLAGS} ${LDFLAGS}
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}
90 LEX.l?
= ${LEX} ${LFLAGS}
93 LINTFLAGS?
= -chapbxzFS
103 COMPILE.p?
= ${PC} ${PFLAGS} ${CPPFLAGS} -c
104 LINK.p?
= ${PC} ${PFLAGS} ${CPPFLAGS} ${LDFLAGS}
114 YACC.y?
= ${YACC} ${YFLAGS}
118 ${LINK.c
} -o
${.TARGET
} ${.IMPSRC
} ${LDLIBS}
120 ${COMPILE.c
} ${.IMPSRC
}
122 ${COMPILE.c
} ${.IMPSRC
}
123 ${AR} ${ARFLAGS} ${.TARGET
} ${.PREFIX
}.o
126 ${LINT} ${LINTFLAGS} \
127 ${CPPFLAGS
:C
/-([IDU
])[ ]*/-\
1/Wg
:M-
[IDU
]*} \
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
142 ${LINK.f
} -o
${.TARGET
} ${.IMPSRC
} ${LDLIBS}
144 ${COMPILE.f
} ${.IMPSRC
}
146 ${COMPILE.f
} ${.IMPSRC
}
147 ${AR} ${ARFLAGS} ${.TARGET
} ${.PREFIX
}.o
151 ${LINK.F
} -o
${.TARGET
} ${.IMPSRC
} ${LDLIBS}
153 ${COMPILE.F
} ${.IMPSRC
}
155 ${COMPILE.F
} ${.IMPSRC
}
156 ${AR} ${ARFLAGS} ${.TARGET
} ${.PREFIX
}.o
160 ${LINK.r
} -o
${.TARGET
} ${.IMPSRC
} ${LDLIBS}
162 ${COMPILE.r
} ${.IMPSRC
}
164 ${COMPILE.r
} ${.IMPSRC
}
165 ${AR} ${ARFLAGS} ${.TARGET
} ${.PREFIX
}.o
170 ${LINK.p
} -o
${.TARGET
} ${.IMPSRC
} ${LDLIBS}
172 ${COMPILE.p
} ${.IMPSRC
}
174 ${COMPILE.p
} ${.IMPSRC
}
175 ${AR} ${ARFLAGS} ${.TARGET
} ${.PREFIX
}.o
180 ${LINK.s
} -o
${.TARGET
} ${.IMPSRC
} ${LDLIBS}
182 ${COMPILE.s
} ${.IMPSRC
}
184 ${COMPILE.s
} ${.IMPSRC
}
185 ${AR} ${ARFLAGS} ${.TARGET
} ${.PREFIX
}.o
188 ${LINK.S
} -o
${.TARGET
} ${.IMPSRC
} ${LDLIBS}
190 ${COMPILE.S
} ${.IMPSRC
}
192 ${COMPILE.S
} ${.IMPSRC
}
193 ${AR} ${ARFLAGS} ${.TARGET
} ${.PREFIX
}.o
199 ${LINK.c
} -o
${.TARGET
} lex.yy.c
${LDLIBS} -ll
203 mv
lex.yy.c
${.TARGET
}
206 ${COMPILE.c
} -o
${.TARGET
} lex.yy.c
212 ${LINK.c
} -o
${.TARGET
} y.tab.c
${LDLIBS}
216 mv y.tab.c
${.TARGET
}
219 ${COMPILE.c
} -o
${.TARGET
} y.tab.c
225 # cp ${.IMPSRC} ${.TARGET}
226 # chmod a+x ${.TARGET}
231 .elif
!empty
(CC
:Mgcc
)