1 # $NetBSD: sys.mk,v 1.65 2002/03/27 05:39:00 eeh 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} == "arm" || ${MACHINE_ARCH} == "arm32" || \ 25 ${MACHINE_ARCH} == "i386" || \ 26 ${MACHINE_ARCH} == "m68k" || \ 27 ${MACHINE_ARCH} == "mipsel" || ${MACHINE_ARCH} == "mipseb" || \ 28 ${MACHINE_ARCH} == "powerpc" || \ 29 ${MACHINE_ARCH} == "sparc" || \ 30 ${MACHINE_ARCH} == "vax" 31 DBG?= -O2 32 .elif ${MACHINE_ARCH} == "x86_64" 33 DBG?= 34 .elif ${MACHINE_ARCH} == "sparc64" 35 DBG?= -O -ffixed-g4 #Hack for embedany memory model compatibility 36 .else 37 DBG?= -O 38 .endif 39 CFLAGS?= ${DBG} 40 COMPILE.c?= ${CC} ${CFLAGS} ${CPPFLAGS} -c 41 LINK.c?= ${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} 42 43 CXX?= c++ 44 CXXFLAGS?= ${CFLAGS} 45 COMPILE.cc?= ${CXX} ${CXXFLAGS} ${CPPFLAGS} -c 46 LINK.cc?= ${CXX} ${CXXFLAGS} ${CPPFLAGS} ${LDFLAGS} 47 48 OBJC?= ${CC} 49 OBJCFLAGS?= ${CFLAGS} 50 COMPILE.m?= ${OBJC} ${OBJCFLAGS} ${CPPFLAGS} -c 51 LINK.m?= ${OBJC} ${OBJCFLAGS} ${CPPFLAGS} ${LDFLAGS} 52 53 CPP?= cpp 54 CPPFLAGS?= 55 56 FC?= f77 57 FFLAGS?= -O 58 RFLAGS?= 59 COMPILE.f?= ${FC} ${FFLAGS} -c 60 LINK.f?= ${FC} ${FFLAGS} ${LDFLAGS} 61 COMPILE.F?= ${FC} ${FFLAGS} ${CPPFLAGS} -c 62 LINK.F?= ${FC} ${FFLAGS} ${CPPFLAGS} ${LDFLAGS} 63 COMPILE.r?= ${FC} ${FFLAGS} ${RFLAGS} -c 64 LINK.r?= ${FC} ${FFLAGS} ${RFLAGS} ${LDFLAGS} 65 66 INSTALL?= install 67 68 LEX?= lex 69 LFLAGS?= 70 LEX.l?= ${LEX} ${LFLAGS} 71 72 LD?= ld 73 LDFLAGS?= 74 75 LINT?= lint 76 LINTFLAGS?= -chapbxzF 77 78 LORDER?= lorder 79 80 MAKE?= make 81 82 NM?= nm 83 84 PC?= pc 85 PFLAGS?= 86 COMPILE.p?= ${PC} ${PFLAGS} ${CPPFLAGS} -c 87 LINK.p?= ${PC} ${PFLAGS} ${CPPFLAGS} ${LDFLAGS} 88 89 SHELL?= sh 90 91 SIZE?= size 92 93 TSORT?= tsort -q 94 95 YACC?= yacc 96 YFLAGS?= 97 YACC.y?= ${YACC} ${YFLAGS} 98 99 # C 100 .c: 101 ${LINK.c} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} 102 .c.o: 103 ${COMPILE.c} ${.IMPSRC} 104 .c.a: 105 ${COMPILE.c} ${.IMPSRC} 106 ${AR} ${ARFLAGS} $@ $*.o 107 rm -f $*.o 108 .c.ln: 109 ${LINT} ${LINTFLAGS} ${CPPFLAGS:M-[IDU]*} -i ${.IMPSRC} 110 111 # C++ 112 .cc .cpp .cxx .C: 113 ${LINK.cc} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} 114 .cc.o .cpp.o .cxx.o .C.o: 115 ${COMPILE.cc} ${.IMPSRC} 116 .cc.a .cpp.a .cxx.a .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