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