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