1 # $NetBSD: sys.mk,v 1.88 2006/08/26 19:57:03 matt Exp $ 2 # @(#)sys.mk 8.2 (Berkeley) 3/21/94 3 4 unix?= 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 10 AR?= ar 11 ARFLAGS?= rl 12 RANLIB?= ranlib 13 14 AS?= as 15 AFLAGS?= 16 COMPILE.s?= ${CC} ${AFLAGS} -c 17 LINK.s?= ${CC} ${AFLAGS} ${LDFLAGS} 18 COMPILE.S?= ${CC} ${AFLAGS} ${CPPFLAGS} -c -traditional-cpp 19 LINK.S?= ${CC} ${AFLAGS} ${CPPFLAGS} ${LDFLAGS} 20 21 CC?= cc 22 .if ${MACHINE_ARCH} == "alpha" || \ 23 ${MACHINE_ARCH} == "arm" || \ 24 ${MACHINE_ARCH} == "x86_64" || \ 25 ${MACHINE_ARCH} == "armeb" || \ 26 ${MACHINE_ARCH} == "hppa" || \ 27 ${MACHINE_ARCH} == "i386" || \ 28 ${MACHINE_ARCH} == "m68k" || \ 29 ${MACHINE_ARCH} == "mipsel" || ${MACHINE_ARCH} == "mipseb" || \ 30 ${MACHINE_ARCH} == "mips64el" || ${MACHINE_ARCH} == "mips64eb" || \ 31 ${MACHINE_ARCH} == "ns32k" || \ 32 ${MACHINE_ARCH} == "powerpc" || \ 33 ${MACHINE_ARCH} == "sh5el" || ${MACHINE_ARCH} == "sh5eb" || \ 34 ${MACHINE_ARCH} == "sparc" || \ 35 ${MACHINE_ARCH} == "sparc64" || \ 36 ${MACHINE_ARCH} == "vax" 37 DBG?= -O2 38 .else 39 DBG?= -O 40 .endif 41 CFLAGS?= ${DBG} 42 LDFLAGS?= 43 COMPILE.c?= ${CC} ${CFLAGS} ${CPPFLAGS} -c 44 LINK.c?= ${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} 45 46 CXX?= c++ 47 CXXFLAGS?= ${CFLAGS:N-Wno-traditional:N-Wstrict-prototypes:N-Wmissing-prototypes} 48 COMPILE.cc?= ${CXX} ${CXXFLAGS} ${CPPFLAGS} -c 49 LINK.cc?= ${CXX} ${CXXFLAGS} ${CPPFLAGS} ${LDFLAGS} 50 51 OBJC?= ${CC} 52 OBJCFLAGS?= ${CFLAGS} 53 COMPILE.m?= ${OBJC} ${OBJCFLAGS} ${CPPFLAGS} -c 54 LINK.m?= ${OBJC} ${OBJCFLAGS} ${CPPFLAGS} ${LDFLAGS} 55 56 CPP?= cpp 57 CPPFLAGS?= 58 59 FC?= f77 60 FFLAGS?= -O 61 RFLAGS?= 62 COMPILE.f?= ${FC} ${FFLAGS} -c 63 LINK.f?= ${FC} ${FFLAGS} ${LDFLAGS} 64 COMPILE.F?= ${FC} ${FFLAGS} ${CPPFLAGS} -c 65 LINK.F?= ${FC} ${FFLAGS} ${CPPFLAGS} ${LDFLAGS} 66 COMPILE.r?= ${FC} ${FFLAGS} ${RFLAGS} -c 67 LINK.r?= ${FC} ${FFLAGS} ${RFLAGS} ${LDFLAGS} 68 69 INSTALL?= install 70 71 LD?= ld 72 73 LEX?= lex 74 LFLAGS?= 75 LEX.l?= ${LEX} ${LFLAGS} 76 77 LINT?= lint 78 LINTFLAGS?= -chapbxzFS 79 80 LORDER?= lorder 81 82 MAKE?= make 83 84 NM?= nm 85 86 PC?= pc 87 PFLAGS?= 88 COMPILE.p?= ${PC} ${PFLAGS} ${CPPFLAGS} -c 89 LINK.p?= ${PC} ${PFLAGS} ${CPPFLAGS} ${LDFLAGS} 90 91 SHELL?= sh 92 93 SIZE?= size 94 95 TSORT?= tsort -q 96 97 YACC?= yacc 98 YFLAGS?= 99 YACC.y?= ${YACC} ${YFLAGS} 100 101 # C 102 .c: 103 ${LINK.c} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} 104 .c.o: 105 ${COMPILE.c} ${.IMPSRC} 106 .c.a: 107 ${COMPILE.c} ${.IMPSRC} 108 ${AR} ${ARFLAGS} ${.TARGET} ${.PREFIX}.o 109 rm -f ${.PREFIX}.o 110 .c.ln: 111 ${LINT} ${LINTFLAGS} \ 112 ${CPPFLAGS:C/-([IDU])[ ]*/-\1/Wg:M-[IDU]*} \ 113 -i ${.IMPSRC} 114 115 # C++ 116 .cc .cpp .cxx .C: 117 ${LINK.cc} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} 118 .cc.o .cpp.o .cxx.o .C.o: 119 ${COMPILE.cc} ${.IMPSRC} 120 .cc.a .cpp.a .cxx.a .C.a: 121 ${COMPILE.cc} ${.IMPSRC} 122 ${AR} ${ARFLAGS} ${.TARGET} ${.PREFIX}.o 123 rm -f ${.PREFIX}.o 124 125 # Fortran/Ratfor 126 .f: 127 ${LINK.f} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} 128 .f.o: 129 ${COMPILE.f} ${.IMPSRC} 130 .f.a: 131 ${COMPILE.f} ${.IMPSRC} 132 ${AR} ${ARFLAGS} ${.TARGET} ${.PREFIX}.o 133 rm -f ${.PREFIX}.o 134 135 .F: 136 ${LINK.F} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} 137 .F.o: 138 ${COMPILE.F} ${.IMPSRC} 139 .F.a: 140 ${COMPILE.F} ${.IMPSRC} 141 ${AR} ${ARFLAGS} ${.TARGET} ${.PREFIX}.o 142 rm -f ${.PREFIX}.o 143 144 .r: 145 ${LINK.r} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} 146 .r.o: 147 ${COMPILE.r} ${.IMPSRC} 148 .r.a: 149 ${COMPILE.r} ${.IMPSRC} 150 ${AR} ${ARFLAGS} ${.TARGET} ${.PREFIX}.o 151 rm -f ${.PREFIX}.o 152 153 # Pascal 154 .p: 155 ${LINK.p} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} 156 .p.o: 157 ${COMPILE.p} ${.IMPSRC} 158 .p.a: 159 ${COMPILE.p} ${.IMPSRC} 160 ${AR} ${ARFLAGS} ${.TARGET} ${.PREFIX}.o 161 rm -f ${.PREFIX}.o 162 163 # Assembly 164 .s: 165 ${LINK.s} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} 166 .s.o: 167 ${COMPILE.s} ${.IMPSRC} 168 .s.a: 169 ${COMPILE.s} ${.IMPSRC} 170 ${AR} ${ARFLAGS} ${.TARGET} ${.PREFIX}.o 171 rm -f ${.PREFIX}.o 172 .S: 173 ${LINK.S} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} 174 .S.o: 175 ${COMPILE.S} ${.IMPSRC} 176 .S.a: 177 ${COMPILE.S} ${.IMPSRC} 178 ${AR} ${ARFLAGS} ${.TARGET} ${.PREFIX}.o 179 rm -f ${.PREFIX}.o 180 181 # Lex 182 .l: 183 ${LEX.l} ${.IMPSRC} 184 ${LINK.c} -o ${.TARGET} lex.yy.c ${LDLIBS} -ll 185 rm -f lex.yy.c 186 .l.c: 187 ${LEX.l} ${.IMPSRC} 188 mv lex.yy.c ${.TARGET} 189 .l.o: 190 ${LEX.l} ${.IMPSRC} 191 ${COMPILE.c} -o ${.TARGET} lex.yy.c 192 rm -f lex.yy.c 193 194 # Yacc 195 .y: 196 ${YACC.y} ${.IMPSRC} 197 ${LINK.c} -o ${.TARGET} y.tab.c ${LDLIBS} 198 rm -f y.tab.c 199 .y.c: 200 ${YACC.y} ${.IMPSRC} 201 mv y.tab.c ${.TARGET} 202 .y.o: 203 ${YACC.y} ${.IMPSRC} 204 ${COMPILE.c} -o ${.TARGET} y.tab.c 205 rm -f y.tab.c 206 207 # Shell 208 .sh: 209 rm -f ${.TARGET} 210 cp ${.IMPSRC} ${.TARGET} 211 chmod a+x ${.TARGET} 212