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