1 # $NetBSD: sys.mk,v 1.97 2008/05/06 22:19:11 uwe Exp $ 2 # @(#)sys.mk 8.2 (Berkeley) 3/21/94 3 4 unix?= We run NetBSD. 5 6 .SUFFIXES: .a .o .ln .s .S .c .cc .cpp .cxx .C .f .F .r .p .l .y .sh 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} == "alpha" || \ 23 ${MACHINE_ARCH} == "arm" || \ 24 ${MACHINE_ARCH} == "x86_64" || \ 25 ${MACHINE_ARCH} == "armeb" || \ 26 ${MACHINE_ARCH} == "hppa" || \ 27 ${MACHINE_ARCH} == "i386" || \ 28 ${MACHINE_ARCH} == "m68k" || \ 29 ${MACHINE_ARCH} == "mipsel" || ${MACHINE_ARCH} == "mipseb" || \ 30 ${MACHINE_ARCH} == "mips64el" || ${MACHINE_ARCH} == "mips64eb" || \ 31 ${MACHINE_ARCH} == "powerpc" || \ 32 ${MACHINE_ARCH} == "sparc" || \ 33 ${MACHINE_ARCH} == "sparc64" 34 DBG?= -O2 35 .elif ${MACHINE_ARCH} == "sh3el" || ${MACHINE_ARCH} == "sh3eb" 36 # -O2 is too -falign-* zealous for low-memory sh3 machines 37 DBG?= -Os -freorder-blocks 38 .elif ${MACHINE_ARCH} == "vax" 39 DBG?= -O1 -fgcse -fstrength-reduce -fgcse-after-reload 40 .elif ${MACHINE_ARCH} == "m68000" 41 # see src/doc/HACKS for details 42 DBG?= -O1 43 .else 44 DBG?= -O 45 .endif 46 CFLAGS?= ${DBG} 47 LDFLAGS?= 48 COMPILE.c?= ${CC} ${CFLAGS} ${CPPFLAGS} -c 49 LINK.c?= ${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} 50 51 CXX?= c++ 52 CXXFLAGS?= ${CFLAGS:N-Wno-traditional:N-Wstrict-prototypes:N-Wmissing-prototypes:N-std=gnu99} 53 54 COMPILE.cc?= ${CXX} ${CXXFLAGS} ${CPPFLAGS} -c 55 LINK.cc?= ${CXX} ${CXXFLAGS} ${CPPFLAGS} ${LDFLAGS} 56 57 OBJC?= ${CC} 58 OBJCFLAGS?= ${CFLAGS} 59 COMPILE.m?= ${OBJC} ${OBJCFLAGS} ${CPPFLAGS} -c 60 LINK.m?= ${OBJC} ${OBJCFLAGS} ${CPPFLAGS} ${LDFLAGS} 61 62 CPP?= cpp 63 CPPFLAGS?= 64 65 FC?= f77 66 FFLAGS?= -O 67 RFLAGS?= 68 COMPILE.f?= ${FC} ${FFLAGS} -c 69 LINK.f?= ${FC} ${FFLAGS} ${LDFLAGS} 70 COMPILE.F?= ${FC} ${FFLAGS} ${CPPFLAGS} -c 71 LINK.F?= ${FC} ${FFLAGS} ${CPPFLAGS} ${LDFLAGS} 72 COMPILE.r?= ${FC} ${FFLAGS} ${RFLAGS} -c 73 LINK.r?= ${FC} ${FFLAGS} ${RFLAGS} ${LDFLAGS} 74 75 INSTALL?= install 76 77 LD?= ld 78 79 LEX?= lex 80 LFLAGS?= 81 LEX.l?= ${LEX} ${LFLAGS} 82 83 LINT?= lint 84 LINTFLAGS?= -chapbxzFS 85 86 LORDER?= lorder 87 88 MAKE?= make 89 90 NM?= nm 91 92 PC?= pc 93 PFLAGS?= 94 COMPILE.p?= ${PC} ${PFLAGS} ${CPPFLAGS} -c 95 LINK.p?= ${PC} ${PFLAGS} ${CPPFLAGS} ${LDFLAGS} 96 97 SHELL?= sh 98 99 SIZE?= size 100 101 TSORT?= tsort -q 102 103 YACC?= yacc 104 YFLAGS?= 105 YACC.y?= ${YACC} ${YFLAGS} 106 107 # C 108 .c: 109 ${LINK.c} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} 110 .c.o: 111 ${COMPILE.c} ${.IMPSRC} 112 .c.a: 113 ${COMPILE.c} ${.IMPSRC} 114 ${AR} ${ARFLAGS} ${.TARGET} ${.PREFIX}.o 115 rm -f ${.PREFIX}.o 116 .c.ln: 117 ${LINT} ${LINTFLAGS} \ 118 ${CPPFLAGS:C/-([IDU])[ ]*/-\1/Wg:M-[IDU]*} \ 119 -i ${.IMPSRC} 120 121 # C++ 122 .cc .cpp .cxx .C: 123 ${LINK.cc} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} 124 .cc.o .cpp.o .cxx.o .C.o: 125 ${COMPILE.cc} ${.IMPSRC} 126 .cc.a .cpp.a .cxx.a .C.a: 127 ${COMPILE.cc} ${.IMPSRC} 128 ${AR} ${ARFLAGS} ${.TARGET} ${.PREFIX}.o 129 rm -f ${.PREFIX}.o 130 131 # Fortran/Ratfor 132 .f: 133 ${LINK.f} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} 134 .f.o: 135 ${COMPILE.f} ${.IMPSRC} 136 .f.a: 137 ${COMPILE.f} ${.IMPSRC} 138 ${AR} ${ARFLAGS} ${.TARGET} ${.PREFIX}.o 139 rm -f ${.PREFIX}.o 140 141 .F: 142 ${LINK.F} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} 143 .F.o: 144 ${COMPILE.F} ${.IMPSRC} 145 .F.a: 146 ${COMPILE.F} ${.IMPSRC} 147 ${AR} ${ARFLAGS} ${.TARGET} ${.PREFIX}.o 148 rm -f ${.PREFIX}.o 149 150 .r: 151 ${LINK.r} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} 152 .r.o: 153 ${COMPILE.r} ${.IMPSRC} 154 .r.a: 155 ${COMPILE.r} ${.IMPSRC} 156 ${AR} ${ARFLAGS} ${.TARGET} ${.PREFIX}.o 157 rm -f ${.PREFIX}.o 158 159 # Pascal 160 .p: 161 ${LINK.p} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} 162 .p.o: 163 ${COMPILE.p} ${.IMPSRC} 164 .p.a: 165 ${COMPILE.p} ${.IMPSRC} 166 ${AR} ${ARFLAGS} ${.TARGET} ${.PREFIX}.o 167 rm -f ${.PREFIX}.o 168 169 # Assembly 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} ${.TARGET} ${.PREFIX}.o 177 rm -f ${.PREFIX}.o 178 .S: 179 ${LINK.S} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} 180 .S.o: 181 ${COMPILE.S} ${.IMPSRC} 182 .S.a: 183 ${COMPILE.S} ${.IMPSRC} 184 ${AR} ${ARFLAGS} ${.TARGET} ${.PREFIX}.o 185 rm -f ${.PREFIX}.o 186 187 # Lex 188 .l: 189 ${LEX.l} ${.IMPSRC} 190 ${LINK.c} -o ${.TARGET} lex.yy.c ${LDLIBS} -ll 191 rm -f lex.yy.c 192 .l.c: 193 ${LEX.l} ${.IMPSRC} 194 mv lex.yy.c ${.TARGET} 195 .l.o: 196 ${LEX.l} ${.IMPSRC} 197 ${COMPILE.c} -o ${.TARGET} lex.yy.c 198 rm -f lex.yy.c 199 200 # Yacc 201 .y: 202 ${YACC.y} ${.IMPSRC} 203 ${LINK.c} -o ${.TARGET} y.tab.c ${LDLIBS} 204 rm -f y.tab.c 205 .y.c: 206 ${YACC.y} ${.IMPSRC} 207 mv y.tab.c ${.TARGET} 208 .y.o: 209 ${YACC.y} ${.IMPSRC} 210 ${COMPILE.c} -o ${.TARGET} y.tab.c 211 rm -f y.tab.c 212 213 # Shell 214 .sh: 215 rm -f ${.TARGET} 216 cp ${.IMPSRC} ${.TARGET} 217 chmod a+x ${.TARGET} 218