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