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