1# $NetBSD: bsd.sys.mk,v 1.82 2002/11/25 03:03:13 thorpej Exp $ 2# 3# Build definitions used for NetBSD source tree builds. 4 5.if !target(__bsd_sys_mk__) 6__bsd_sys_mk__: 7 8.if defined(WARNS) 9.if ${WARNS} > 0 10CFLAGS+= -Wall -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith 11#CFLAGS+= -Wmissing-declarations -Wredundant-decls -Wnested-externs 12# Add -Wno-sign-compare. -Wsign-compare is included in -Wall as of GCC 3.3, 13# but our sources aren't up for it yet. 14CFLAGS+= -Wno-sign-compare 15# XXX Delete -Wuninitialized by default for now -- the compiler doesn't 16# XXX always get it right. 17CFLAGS+= -Wno-uninitialized 18.endif 19.if ${WARNS} > 1 20CFLAGS+= -Wreturn-type -Wswitch -Wshadow 21.endif 22.if ${WARNS} > 2 23CFLAGS+= -Wcast-qual -Wwrite-strings 24.endif 25.endif 26 27.if defined(WFORMAT) && defined(FORMAT_AUDIT) 28.if ${WFORMAT} > 1 29CFLAGS+= -Wnetbsd-format-audit -Wno-format-extra-args 30.endif 31.endif 32 33CPPFLAGS+= ${AUDIT:D-D__AUDIT__} 34CFLAGS+= ${CWARNFLAGS} ${NOGCCERROR:D:U-Werror} 35LINTFLAGS+= ${DESTDIR:D-d ${DESTDIR}/usr/include} 36 37.if defined(MKSOFTFLOAT) && (${MKSOFTFLOAT} != "no") 38COPTS+= -msoft-float 39FOPTS+= -msoft-float 40.endif 41 42.if defined(MKIEEEFP) && (${MKIEEEFP} != "no") 43.if ${MACHINE_ARCH} == "alpha" 44CFLAGS+= -mieee 45FFLAGS+= -mieee 46.endif 47.endif 48 49.if ${MACHINE} == "sparc64" && ${MACHINE_ARCH} == "sparc" 50CFLAGS+= -Wa,-Av8plus 51.endif 52 53# Helpers for cross-compiling 54HOST_CC?= cc 55HOST_CFLAGS?= -O 56HOST_COMPILE.c?=${HOST_CC} ${HOST_CFLAGS} ${HOST_CPPFLAGS} -c 57HOST_LINK.c?= ${HOST_CC} ${HOST_CFLAGS} ${HOST_CPPFLAGS} ${HOST_LDFLAGS} 58 59HOST_CXX?= c++ 60HOST_CXXFLAGS?= -O 61 62HOST_CPP?= cpp 63HOST_CPPFLAGS?= 64 65HOST_LD?= ld 66HOST_LDFLAGS?= 67 68HOST_AR?= ar 69HOST_RANLIB?= ranlib 70 71CAP_MKDB?= cap_mkdb 72CAT?= cat 73CKSUM?= cksum 74CONFIG?= config 75CRUNCHGEN?= crunchgen 76ELF2ECOFF?= elf2ecoff 77FGEN?= fgen 78GROFF?= groff 79INSTALLBOOT?= installboot 80MAKEFS?= makefs 81MDSETIMAGE?= mdsetimage 82MKDEP?= mkdep 83MKLOCALE?= mklocale 84MTREE?= mtree 85OBJCOPY?= objcopy 86PAX?= pax 87PWD_MKDB?= pwd_mkdb 88RPCGEN?= rpcgen 89STRIP?= strip 90 91.SUFFIXES: .m .o .ln .lo 92 93# Objective C 94# (Defined here rather than in <sys.mk> because `.m' is not just 95# used for Objective C source) 96.m: 97 ${LINK.m} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} 98.m.o: 99 ${COMPILE.m} ${.IMPSRC} 100 101# Host-compiled C objects 102# The intermediate step is necessary for Sun CC, which objects to calling 103# object files anything but *.o 104.c.lo: 105 ${HOST_COMPILE.c} -o ${.TARGET}.o ${.IMPSRC} 106 mv ${.TARGET}.o ${.TARGET} 107 108# Lex 109LPREFIX?= yy 110LFLAGS+= -P${LPREFIX} 111 112.l.o: # remove to force use of .l.c->.c.o transforms 113.l: 114 ${LEX.l} -o${.TARGET:R}.${LPREFIX}.c ${.IMPSRC} 115 ${LINK.c} -o ${.TARGET} ${.TARGET:R}.${LPREFIX}.c ${LDLIBS} -ll 116 rm -f ${.TARGET:R}.${LPREFIX}.c 117.l.c: 118 ${LEX.l} -o${.TARGET} ${.IMPSRC} 119 120# Yacc 121YFLAGS+= ${YPREFIX:D-p${YPREFIX}} ${YHEADER:D-d} 122 123.y.o: # remove to force use of .y.c->.c.o transforms 124.y: 125 ${YACC.y} -b ${.TARGET:R} ${.IMPSRC} 126 ${LINK.c} -o ${.TARGET} ${.TARGET:R}.tab.c ${LDLIBS} 127 rm -f ${.TARGET:R}.tab.[ch] 128.y.c: 129 ${YACC.y} -o ${.TARGET} ${.IMPSRC} 130 131.ifdef YHEADER 132.y.h: ${.TARGET:.h=.c} 133.endif 134 135.endif # __bsd_sys_mk__ 136