1# $NetBSD: sys.mk,v 1.108 2012/02/10 05:57:42 matt Exp $ 2# @(#)sys.mk 8.2 (Berkeley) 3/21/94 3 4unix?= We run NetBSD. 5 6.SUFFIXES: .a .o .ln .s .S .c .cc .cpp .cxx .C .f .F .r .p .l .y .sh 7 8.LIBS: .a 9 10AR?= ar 11ARFLAGS?= rl 12RANLIB?= ranlib 13 14AS?= as 15AFLAGS?= 16COMPILE.s?= ${CC} ${AFLAGS} ${AFLAGS.${<:T}} -c 17LINK.s?= ${CC} ${AFLAGS} ${AFLAGS.${<:T}} ${LDFLAGS} 18_ASM_TRADITIONAL_CPP= -x assembler-with-cpp 19COMPILE.S?= ${CC} ${AFLAGS} ${AFLAGS.${<:T}} ${CPPFLAGS} ${_ASM_TRADITIONAL_CPP} -c 20LINK.S?= ${CC} ${AFLAGS} ${AFLAGS.${<:T}} ${CPPFLAGS} ${LDFLAGS} 21 22CC?= cc 23.if ${MACHINE_ARCH} == "sh3el" || ${MACHINE_ARCH} == "sh3eb" 24# -O2 is too -falign-* zealous for low-memory sh3 machines 25DBG?= -Os -freorder-blocks 26.elif ${MACHINE_ARCH} == "m68k" || ${MACHINE_ARCH} == "m68000" 27# see src/doc/HACKS for details 28DBG?= -Os 29.elif ${MACHINE_ARCH} == "vax" 30DBG?= -O1 -fgcse -fstrength-reduce -fgcse-after-reload 31.else 32DBG?= -O2 33.endif 34CFLAGS?= ${DBG} 35LDFLAGS?= 36COMPILE.c?= ${CC} ${CFLAGS} ${CPPFLAGS} -c 37LINK.c?= ${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} 38 39# C Type Format data is required for DTrace 40# XXX TBD VERSION is not defined 41CTFFLAGS ?= -L VERSION 42CTFMFLAGS ?= -t -L VERSION 43 44.if defined(MKDTRACE) && ${MKDTRACE} != "no" 45CTFCONVERT ?= ${TOOL_CTFCONVERT} 46CTFMERGE ?= ${TOOL_CTFMERGE} 47.if defined(CFLAGS) && (${CFLAGS:M-g} != "") 48CTFFLAGS += -g 49CTFMFLAGS += -g 50.else 51CFLAGS += -g 52.endif 53.endif 54 55CXX?= c++ 56CXXFLAGS?= ${CFLAGS:N-Wno-traditional:N-Wstrict-prototypes:N-Wmissing-prototypes:N-Wno-pointer-sign:N-ffreestanding:N-std=gnu99} 57 58__ALLSRC1= ${empty(DESTDIR):?${.ALLSRC}:${.ALLSRC:S|^${DESTDIR}|^destdir|}} 59__ALLSRC2= ${empty(MAKEOBJDIR):?${__ALLSRC1}:${__ALLSRC1:S|^${MAKEOBJDIR}|^obj|}} 60__ALLSRC3= ${empty(NETBSDSRCDIR):?${__ALLSRC2}:${__ALLSRC2:S|^${NETBSDSRCDIR}|^src|}} 61__BUILDSEED= ${BUILDSEED}/${__ALLSRC3:O}/${.TARGET} 62_CXXSEED?= ${BUILDSEED:D-frandom-seed=${__BUILDSEED:hash}} 63 64COMPILE.cc?= ${CXX} ${_CXXSEED} ${CXXFLAGS} ${CPPFLAGS} -c 65LINK.cc?= ${CXX} ${CXXFLAGS} ${CPPFLAGS} ${LDFLAGS} 66 67OBJC?= ${CC} 68OBJCFLAGS?= ${CFLAGS} 69COMPILE.m?= ${OBJC} ${OBJCFLAGS} ${CPPFLAGS} -c 70LINK.m?= ${OBJC} ${OBJCFLAGS} ${CPPFLAGS} ${LDFLAGS} 71 72CPP?= cpp 73CPPFLAGS?= 74 75FC?= f77 76FFLAGS?= -O 77RFLAGS?= 78COMPILE.f?= ${FC} ${FFLAGS} -c 79LINK.f?= ${FC} ${FFLAGS} ${LDFLAGS} 80COMPILE.F?= ${FC} ${FFLAGS} ${CPPFLAGS} -c 81LINK.F?= ${FC} ${FFLAGS} ${CPPFLAGS} ${LDFLAGS} 82COMPILE.r?= ${FC} ${FFLAGS} ${RFLAGS} -c 83LINK.r?= ${FC} ${FFLAGS} ${RFLAGS} ${LDFLAGS} 84 85INSTALL?= install 86 87LD?= ld 88 89LEX?= lex 90LFLAGS?= 91LEX.l?= ${LEX} ${LFLAGS} 92 93LINT?= lint 94LINTFLAGS?= -chapbxzFS 95 96LORDER?= lorder 97 98MAKE?= make 99 100NM?= nm 101 102PC?= pc 103PFLAGS?= 104COMPILE.p?= ${PC} ${PFLAGS} ${CPPFLAGS} -c 105LINK.p?= ${PC} ${PFLAGS} ${CPPFLAGS} ${LDFLAGS} 106 107SHELL?= sh 108 109SIZE?= size 110 111TSORT?= tsort -q 112 113YACC?= yacc 114YFLAGS?= 115YACC.y?= ${YACC} ${YFLAGS} 116 117# C 118.c: 119 ${LINK.c} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} 120.if defined(CTFCONVERT) 121 ${CTFCONVERT} ${CTFFLAGS} ${.TARGET} 122.endif 123.c.o: 124 ${COMPILE.c} ${.IMPSRC} 125.if defined(CTFCONVERT) 126 ${CTFCONVERT} ${CTFFLAGS} ${.TARGET} 127.endif 128.c.a: 129 ${COMPILE.c} ${.IMPSRC} 130 ${AR} ${ARFLAGS} ${.TARGET} ${.PREFIX}.o 131 rm -f ${.PREFIX}.o 132.c.ln: 133 ${LINT} ${LINTFLAGS} \ 134 ${CPPFLAGS:C/-([IDU])[ ]*/-\1/Wg:M-[IDU]*} \ 135 -i ${.IMPSRC} 136 137# C++ 138.cc .cpp .cxx .C: 139 ${LINK.cc} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} 140.cc.o .cpp.o .cxx.o .C.o: 141 ${COMPILE.cc} ${.IMPSRC} 142.cc.a .cpp.a .cxx.a .C.a: 143 ${COMPILE.cc} ${.IMPSRC} 144 ${AR} ${ARFLAGS} ${.TARGET} ${.PREFIX}.o 145 rm -f ${.PREFIX}.o 146 147# Fortran/Ratfor 148.f: 149 ${LINK.f} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} 150.f.o: 151 ${COMPILE.f} ${.IMPSRC} 152.f.a: 153 ${COMPILE.f} ${.IMPSRC} 154 ${AR} ${ARFLAGS} ${.TARGET} ${.PREFIX}.o 155 rm -f ${.PREFIX}.o 156 157.F: 158 ${LINK.F} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} 159.if defined(CTFCONVERT) 160 ${CTFCONVERT} ${CTFFLAGS} ${.TARGET} 161.endif 162.F.o: 163 ${COMPILE.F} ${.IMPSRC} 164.if defined(CTFCONVERT) 165 ${CTFCONVERT} ${CTFFLAGS} ${.TARGET} 166.endif 167.F.a: 168 ${COMPILE.F} ${.IMPSRC} 169 ${AR} ${ARFLAGS} ${.TARGET} ${.PREFIX}.o 170 rm -f ${.PREFIX}.o 171 172.r: 173 ${LINK.r} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} 174.r.o: 175 ${COMPILE.r} ${.IMPSRC} 176.r.a: 177 ${COMPILE.r} ${.IMPSRC} 178 ${AR} ${ARFLAGS} ${.TARGET} ${.PREFIX}.o 179 rm -f ${.PREFIX}.o 180 181# Pascal 182.p: 183 ${LINK.p} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} 184.if defined(CTFCONVERT) 185 ${CTFCONVERT} ${CTFFLAGS} ${.TARGET} 186.endif 187.p.o: 188 ${COMPILE.p} ${.IMPSRC} 189.if defined(CTFCONVERT) 190 ${CTFCONVERT} ${CTFFLAGS} ${.TARGET} 191.endif 192.p.a: 193 ${COMPILE.p} ${.IMPSRC} 194 ${AR} ${ARFLAGS} ${.TARGET} ${.PREFIX}.o 195 rm -f ${.PREFIX}.o 196 197# Assembly 198.s: 199 ${LINK.s} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} 200.if defined(CTFCONVERT) 201 ${CTFCONVERT} ${CTFFLAGS} ${.TARGET} 202.endif 203.s.o: 204 ${COMPILE.s} ${.IMPSRC} 205.if defined(CTFCONVERT) 206 ${CTFCONVERT} ${CTFFLAGS} ${.TARGET} 207.endif 208.s.a: 209 ${COMPILE.s} ${.IMPSRC} 210 ${AR} ${ARFLAGS} ${.TARGET} ${.PREFIX}.o 211 rm -f ${.PREFIX}.o 212.S: 213 ${LINK.S} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} 214.if defined(CTFCONVERT) 215 ${CTFCONVERT} ${CTFFLAGS} ${.TARGET} 216.endif 217.S.o: 218 ${COMPILE.S} ${.IMPSRC} 219.if defined(CTFCONVERT) 220 ${CTFCONVERT} ${CTFFLAGS} ${.TARGET} 221.endif 222.S.a: 223 ${COMPILE.S} ${.IMPSRC} 224 ${AR} ${ARFLAGS} ${.TARGET} ${.PREFIX}.o 225 rm -f ${.PREFIX}.o 226 227# Lex 228.l: 229 ${LEX.l} ${.IMPSRC} 230 ${LINK.c} -o ${.TARGET} lex.yy.c ${LDLIBS} -ll 231 rm -f lex.yy.c 232.l.c: 233 ${LEX.l} ${.IMPSRC} 234 mv lex.yy.c ${.TARGET} 235.l.o: 236 ${LEX.l} ${.IMPSRC} 237 ${COMPILE.c} -o ${.TARGET} lex.yy.c 238 rm -f lex.yy.c 239 240# Yacc 241.y: 242 ${YACC.y} ${.IMPSRC} 243 ${LINK.c} -o ${.TARGET} y.tab.c ${LDLIBS} 244 rm -f y.tab.c 245.y.c: 246 ${YACC.y} ${.IMPSRC} 247 mv y.tab.c ${.TARGET} 248.y.o: 249 ${YACC.y} ${.IMPSRC} 250 ${COMPILE.c} -o ${.TARGET} y.tab.c 251 rm -f y.tab.c 252 253# Shell 254.sh: 255 rm -f ${.TARGET} 256 cp ${.IMPSRC} ${.TARGET} 257 chmod a+x ${.TARGET} 258