1 # $NetBSD: sys.mk,v 1.54 1999/03/10 14:06:14 mycroft Exp $ 2 # @(#)sys.mk 8.2 (Berkeley) 3/21/94 3 4 unix?= We run NetBSD. 5 6 .SUFFIXES: .out .a .ln .o .s .S .c .cc .C .F .f .r .y .l .cl .p .h .sh .m4 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} == "arm32" || \ 24 ${MACHINE_ARCH} == "i386" || \ 25 ${MACHINE_ARCH} == "m68k" || \ 26 ${MACHINE_ARCH} == "mipsel" || ${MACHINE_ARCH} == "mipseb" || \ 27 ${MACHINE_ARCH} == "sparc" 28 CFLAGS?= -O2 29 .else 30 CFLAGS?= -O 31 .endif 32 COMPILE.c?= ${CC} ${CFLAGS} ${CPPFLAGS} -c 33 LINK.c?= ${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} 34 35 CXX?= c++ 36 CXXFLAGS?= ${CFLAGS} 37 COMPILE.cc?= ${CXX} ${CXXFLAGS} ${CPPFLAGS} -c 38 LINK.cc?= ${CXX} ${CXXFLAGS} ${CPPFLAGS} ${LDFLAGS} 39 40 OBJC?= ${CC} 41 OBJCFLAGS?= ${CFLAGS} 42 COMPILE.m?= ${OBJC} ${OBJCFLAGS} ${CPPFLAGS} -c 43 LINK.m?= ${OBJC} ${OBJCFLAGS} ${CPPFLAGS} ${LDFLAGS} 44 45 CPP?= cpp 46 CPPFLAGS?= 47 48 FC?= f77 49 FFLAGS?= -O 50 RFLAGS?= 51 COMPILE.f?= ${FC} ${FFLAGS} -c 52 LINK.f?= ${FC} ${FFLAGS} ${LDFLAGS} 53 COMPILE.F?= ${FC} ${FFLAGS} ${CPPFLAGS} -c 54 LINK.F?= ${FC} ${FFLAGS} ${CPPFLAGS} ${LDFLAGS} 55 COMPILE.r?= ${FC} ${FFLAGS} ${RFLAGS} -c 56 LINK.r?= ${FC} ${FFLAGS} ${RFLAGS} ${LDFLAGS} 57 58 INSTALL?= install 59 60 LEX?= lex 61 LFLAGS?= 62 LEX.l?= ${LEX} ${LFLAGS} 63 64 LD?= ld 65 LDFLAGS?= 66 67 LINT?= lint 68 LINTFLAGS?= -chapbxzF 69 70 LORDER?= lorder 71 72 MAKE?= make 73 74 NM?= nm 75 76 PC?= pc 77 PFLAGS?= 78 COMPILE.p?= ${PC} ${PFLAGS} ${CPPFLAGS} -c 79 LINK.p?= ${PC} ${PFLAGS} ${CPPFLAGS} ${LDFLAGS} 80 81 SHELL?= sh 82 83 SIZE?= size 84 85 TSORT?= tsort -q 86 87 YACC?= yacc 88 YFLAGS?= 89 YACC.y?= ${YACC} ${YFLAGS} 90 91 # C 92 .c: 93 ${LINK.c} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} 94 .c.o: 95 ${COMPILE.c} ${.IMPSRC} 96 .c.a: 97 ${COMPILE.c} ${.IMPSRC} 98 ${AR} ${ARFLAGS} $@ $*.o 99 rm -f $*.o 100 .c.ln: 101 ${LINT} ${LINTFLAGS} ${CPPFLAGS:M-[IDU]*} -i ${.IMPSRC} 102 103 # C++ 104 .cc: 105 ${LINK.cc} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} 106 .cc.o: 107 ${COMPILE.cc} ${.IMPSRC} 108 .cc.a: 109 ${COMPILE.cc} ${.IMPSRC} 110 ${AR} ${ARFLAGS} $@ $*.o 111 rm -f $*.o 112 113 .C: 114 ${LINK.cc} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} 115 .C.o: 116 ${COMPILE.cc} ${.IMPSRC} 117 .C.a: 118 ${COMPILE.cc} ${.IMPSRC} 119 ${AR} ${ARFLAGS} $@ $*.o 120 rm -f $*.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} $@ $*.o 130 rm -f $*.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} $@ $*.o 139 rm -f $*.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} $@ $*.o 148 rm -f $*.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} $@ $*.o 158 rm -f $*.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} $@ $*.o 168 rm -f $*.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} $@ $*.o 176 rm -f $*.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