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