NetBSD/share/mk/bsd.sys.mk
thorpej 22791b9867 Add a CPUFLAGS variable which can be set by the user's mk.conf or in
the environment:

CPUFLAGS        Additional flags to the compiler/assembler to select
                CPU instruction set options, CPU tuning options, etc.

Since CPUFLAGS is not implicitly set by any part of the make infrastructure,
it is safe to set in mk.conf, unlike COPTS or DBG.
2003-05-30 18:43:23 +00:00

146 lines
3.1 KiB
Makefile

# $NetBSD: bsd.sys.mk,v 1.87 2003/05/30 18:43:24 thorpej Exp $
#
# Build definitions used for NetBSD source tree builds.
.if !target(__bsd_sys_mk__)
__bsd_sys_mk__:
.if defined(WARNS)
.if ${WARNS} > 0
CFLAGS+= -Wall -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith
#CFLAGS+= -Wmissing-declarations -Wredundant-decls -Wnested-externs
# Add -Wno-sign-compare. -Wsign-compare is included in -Wall as of GCC 3.3,
# but our sources aren't up for it yet.
CFLAGS+= -Wno-sign-compare
# XXX Delete -Wuninitialized by default for now -- the compiler doesn't
# XXX always get it right.
CFLAGS+= -Wno-uninitialized
.endif
.if ${WARNS} > 1
CFLAGS+= -Wreturn-type -Wswitch -Wshadow
.endif
.if ${WARNS} > 2
CFLAGS+= -Wcast-qual -Wwrite-strings
.endif
.endif
.if defined(WFORMAT) && defined(FORMAT_AUDIT)
.if ${WFORMAT} > 1
CFLAGS+= -Wnetbsd-format-audit -Wno-format-extra-args
.endif
.endif
CPPFLAGS+= ${AUDIT:D-D__AUDIT__}
CFLAGS+= ${CWARNFLAGS} ${NOGCCERROR:D:U-Werror}
LINTFLAGS+= ${DESTDIR:D-d ${DESTDIR}/usr/include}
.if defined(MKSOFTFLOAT) && (${MKSOFTFLOAT} != "no")
COPTS+= -msoft-float
FOPTS+= -msoft-float
.endif
.if defined(MKIEEEFP) && (${MKIEEEFP} != "no")
.if ${MACHINE_ARCH} == "alpha"
CFLAGS+= -mieee
FFLAGS+= -mieee
.endif
.endif
.if ${MACHINE} == "sparc64" && ${MACHINE_ARCH} == "sparc"
CFLAGS+= -Wa,-Av8plus
.endif
CFLAGS+= ${CPUFLAGS}
# Helpers for cross-compiling
HOST_CC?= cc
HOST_CFLAGS?= -O
HOST_COMPILE.c?=${HOST_CC} ${HOST_CFLAGS} ${HOST_CPPFLAGS} -c
HOST_LINK.c?= ${HOST_CC} ${HOST_CFLAGS} ${HOST_CPPFLAGS} ${HOST_LDFLAGS}
HOST_CXX?= c++
HOST_CXXFLAGS?= -O
HOST_CPP?= cpp
HOST_CPPFLAGS?=
HOST_LD?= ld
HOST_LDFLAGS?=
HOST_AR?= ar
HOST_RANLIB?= ranlib
.if !empty(HOST_CYGWIN)
HOST_SH?= /usr/bin/bash
.else
HOST_SH?= sh
.endif
CAP_MKDB?= cap_mkdb
CAT?= cat
CKSUM?= cksum
CONFIG?= config
CRUNCHGEN?= crunchgen
TOOL_DB?= db
ELF2ECOFF?= elf2ecoff
FGEN?= fgen
GROFF?= groff
INSTALLBOOT?= installboot
MAKEFS?= makefs
MDSETIMAGE?= mdsetimage
MKDEP?= mkdep
MKLOCALE?= mklocale
MTREE?= mtree
OBJCOPY?= objcopy
PAX?= pax
PWD_MKDB?= pwd_mkdb
RPCGEN?= rpcgen
STRIP?= strip
SUNLABEL?= sunlabel
.SUFFIXES: .m .o .ln .lo
# Objective C
# (Defined here rather than in <sys.mk> because `.m' is not just
# used for Objective C source)
.m:
${LINK.m} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
.m.o:
${COMPILE.m} ${.IMPSRC}
# Host-compiled C objects
# The intermediate step is necessary for Sun CC, which objects to calling
# object files anything but *.o
.c.lo:
${HOST_COMPILE.c} -o ${.TARGET}.o ${.IMPSRC}
mv ${.TARGET}.o ${.TARGET}
# Lex
LPREFIX?= yy
LFLAGS+= -P${LPREFIX}
.l.o: # remove to force use of .l.c->.c.o transforms
.l:
${LEX.l} -o${.TARGET:R}.${LPREFIX}.c ${.IMPSRC}
${LINK.c} -o ${.TARGET} ${.TARGET:R}.${LPREFIX}.c ${LDLIBS} -ll
rm -f ${.TARGET:R}.${LPREFIX}.c
.l.c:
${LEX.l} -o${.TARGET} ${.IMPSRC}
# Yacc
YFLAGS+= ${YPREFIX:D-p${YPREFIX}} ${YHEADER:D-d}
.y.o: # remove to force use of .y.c->.c.o transforms
.y:
${YACC.y} -b ${.TARGET:R} ${.IMPSRC}
${LINK.c} -o ${.TARGET} ${.TARGET:R}.tab.c ${LDLIBS}
rm -f ${.TARGET:R}.tab.[ch]
.y.c:
${YACC.y} -o ${.TARGET} ${.IMPSRC}
.ifdef YHEADER
.y.h: ${.TARGET:.h=.c}
.endif
.endif # __bsd_sys_mk__