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