1# $MirOS: src/share/mk/sys.mk,v 1.171 2014/02/20 01:01:01 tg Exp $ 2# $OpenBSD: sys.mk,v 1.45 2005/03/07 00:06:00 deraadt Exp $ 3# $NetBSD: sys.mk,v 1.27 1996/04/10 05:47:19 mycroft Exp $ 4# @(#)sys.mk 5.11 (Berkeley) 3/13/91 5 6.if !defined(_SYS_MK) 7_SYS_MK=1 8 9.if ${MACHINE_OS} == "BSD" 10OStype= MirBSD 11.else 12. error MACHINE_OS (${MACHINE_OS}) unknown! 13.endif 14 15.if defined(EXTRA_SYS_MK_INCLUDES) 16. for _i in ${EXTRA_SYS_MK_INCLUDES} 17. include ${_i} 18. endfor 19.endif 20 21# Sync these with <sys/param.h> 22unix= We run ${OStype}. 23OSrev= 10 # MirOS version (major) 24OSrpl= 181 # MirOS patchlevel 25OScompat= 3.5 # OpenBSD compatibility revision 26.if !defined(OSNAME) || empty(OSNAME) 27OSNAME!= uname -s 28.endif 29OSname= ${OSNAME:L} 30OStriplet?= ${MACHINE_ARCH}-ecce-${OSname}${OSrev} 31OSgccver?= 3.4.6 32_MIRMAKE_EXE= /usr/bin/make 33_MIRMAKE_VER= 20100106 34 35.SUFFIXES: .out .a .ln .o .lo .s .S .c .m .cc .C .cxx .cpp .F .f .y .l .i .h .sh .m4 36.LIBS: .a 37 38AR?= ar 39ARFLAGS?= rl 40RANLIB?= ranlib 41LORDER?= lorder 42 43AS?= as 44CC?= mgcc 45CPP?= ${CC} -E 46HOSTCC?= mgcc 47 48CPPFLAGS?= 49PIPE?= -pipe 50 51AFLAGS?= ${DEBUG} 52COMPILE.s?= ${CC} -D_ASM_SOURCE ${AFLAGS} -c 53LINK.s?= ${CC} -D_ASM_SOURCE ${AFLAGS} ${LDFLAGS} 54COMPILE.S?= ${CC} -D_ASM_SOURCE ${AFLAGS} ${CPPFLAGS} -c 55LINK.S?= ${CC} -D_ASM_SOURCE ${AFLAGS} ${CPPFLAGS} ${LDFLAGS} 56 57CFLAGS?= -O2 ${PIPE} -Wno-long-long ${DEBUG} 58COMPILE.c?= ${CC} ${CFLAGS:M*} ${CPPFLAGS} -c 59LINK.c?= ${CC} ${CFLAGS:M*} ${CPPFLAGS} ${LDFLAGS} 60 61CXX?= false 62CXXFLAGS?= ${CFLAGS:N-std=c99:N-std=gnu99:N-Wno-long-long} 63COMPILE.cc?= ${CXX} ${CXXFLAGS:M*} ${CPPFLAGS} -c 64LINK.cc?= ${CXX} ${CXXFLAGS:M*} ${CPPFLAGS} ${LDFLAGS} 65 66FC?= false 67FFLAGS?= -O2 68COMPILE.f?= ${FC} ${FFLAGS:M*} -c 69LINK.f?= ${FC} ${FFLAGS:M*} ${LDFLAGS} 70COMPILE.F?= ${FC} ${FFLAGS:M*} -D_ASM_SOURCE ${CPPFLAGS} -c 71LINK.F?= ${FC} ${FFLAGS:M*} -D_ASM_SOURCE ${CPPFLAGS} ${LDFLAGS} 72 73LEX?= lex 74LFLAGS?= 75LEX.l?= ${LEX} ${LFLAGS} 76 77LD?= ld 78LDFLAGS+= ${DEBUG} 79 80LINT?= lint 81LINTFLAGS?= -chapbx 82 83# MirOS make can use MirBSD ksh extensions per definitionem 84SHELL= /bin/mksh 85MAKE?= make 86 87YACC?= yacc 88YFLAGS?= -d 89YACC.y?= ${YACC} ${YFLAGS} 90 91INSTALL?= install 92 93CTAGS?= ctags 94 95# C 96.c: 97 ${LINK.c} -o $@ ${.IMPSRC} ${LDLIBS} 98.c.o: 99 ${COMPILE.c} ${CFLAGS_${.TARGET}:M*} ${.IMPSRC} 100.c.i: 101 ${COMPILE.c} ${CFLAGS_${.TARGET:.i=.o}:M*} -o $@ -E ${.IMPSRC} 102.c.s: 103 ${COMPILE.c} ${CFLAGS_${.TARGET:.s=.o}:M*} -o $@ -S ${.IMPSRC} 104.c.a: 105 ${COMPILE.c} ${CFLAGS_${.TARGET:.a=.o}:M*} ${.IMPSRC} 106 ${AR} ${ARFLAGS} $@ $*.o 107 rm -f $*.o 108.c.ln: 109 env CC=${_ORIG_CC:Q} ${LINT} ${LINTFLAGS} ${CFLAGS:M-[IDU]*} \ 110 ${CPPFLAGS:M-[IDU]*} -i ${.IMPSRC} 111 112# Objective-C 113.m: 114 ${LINK.c} -o $@ ${.IMPSRC} ${LDLIBS} 115.m.o: 116 ${COMPILE.c} ${CFLAGS_${.TARGET}:M*} ${.IMPSRC} 117.m.i: 118 ${COMPILE.c} ${CFLAGS_${.TARGET:.i=.o}:M*} -o $@ -E ${.IMPSRC} 119.m.s: 120 ${COMPILE.c} ${CFLAGS_${.TARGET:.s=.o}:M*} -o $@ -S ${.IMPSRC} 121.m.a: 122 ${COMPILE.c} ${CFLAGS_${.TARGET:.a=.o}:M*} ${.IMPSRC} 123 ${AR} ${ARFLAGS} $@ $*.o 124 rm -f $*.o 125.m.ln: 126 env CC=${_ORIG_CC:Q} ${LINT} ${LINTFLAGS} ${CFLAGS:M-[IDU]*} \ 127 ${CPPFLAGS:M-[IDU]*} -i ${.IMPSRC} 128 129# C++ 130.cc: 131 ${LINK.cc} -o $@ ${.IMPSRC} ${LDLIBS} 132.cc.o: 133 ${COMPILE.cc} ${CXXFLAGS_${.TARGET}:M*} ${.IMPSRC} 134.cc.i: 135 ${COMPILE.cc} ${CXXFLAGS_${.TARGET:.i=.o}:M*} -o $@ -E ${.IMPSRC} 136.cc.s: 137 ${COMPILE.cc} ${CXXFLAGS_${.TARGET:.s=.o}:M*} -o $@ -S ${.IMPSRC} 138.cc.a: 139 ${COMPILE.cc} ${CXXFLAGS_${.TARGET:.a=.o}:M*} ${.IMPSRC} 140 ${AR} ${ARFLAGS} $@ $*.o 141 rm -f $*.o 142 143.C: 144 ${LINK.cc} -o $@ ${.IMPSRC} ${LDLIBS} 145.C.o: 146 ${COMPILE.cc} ${CXXFLAGS_${.TARGET}:M*} ${.IMPSRC} 147.C.i: 148 ${COMPILE.cc} ${CXXFLAGS_${.TARGET:.i=.o}:M*} -o $@ -E ${.IMPSRC} 149.C.s: 150 ${COMPILE.cc} ${CXXFLAGS_${.TARGET:.s=.o}:M*} -o $@ -S ${.IMPSRC} 151.C.a: 152 ${COMPILE.cc} ${CXXFLAGS_${.TARGET:.a=.o}:M*} ${.IMPSRC} 153 ${AR} ${ARFLAGS} $@ $*.o 154 rm -f $*.o 155 156.cxx: 157 ${LINK.cc} -o $@ ${.IMPSRC} ${LDLIBS} 158.cxx.o: 159 ${COMPILE.cc} ${CXXFLAGS_${.TARGET}:M*} ${.IMPSRC} 160.cxx.i: 161 ${COMPILE.cc} ${CXXFLAGS_${.TARGET:.i=.o}:M*} -o $@ -E ${.IMPSRC} 162.cxx.s: 163 ${COMPILE.cc} ${CXXFLAGS_${.TARGET:.s=.o}:M*} -o $@ -S ${.IMPSRC} 164.cxx.a: 165 ${COMPILE.cc} ${CXXFLAGS_${.TARGET:.a=.o}:M*} ${.IMPSRC} 166 ${AR} ${ARFLAGS} $@ $*.o 167 rm -f $*.o 168 169.cpp: 170 ${LINK.cc} -o $@ ${.IMPSRC} ${LDLIBS} 171.cpp.o: 172 ${COMPILE.cc} ${CXXFLAGS_${.TARGET}:M*} ${.IMPSRC} 173.cpp.i: 174 ${COMPILE.cc} ${CXXFLAGS_${.TARGET:.i=.o}:M*} -o $@ -E ${.IMPSRC} 175.cpp.s: 176 ${COMPILE.cc} ${CXXFLAGS_${.TARGET:.s=.o}:M*} -o $@ -S ${.IMPSRC} 177.cpp.a: 178 ${COMPILE.cc} ${CXXFLAGS_${.TARGET:.a=.o}:M*} ${.IMPSRC} 179 ${AR} ${ARFLAGS} $@ $*.o 180 rm -f $*.o 181 182# Fortran 183.f: 184 ${LINK.f} -o $@ ${.IMPSRC} ${LDLIBS} 185.f.o: 186 ${COMPILE.f} ${FFLAGS_${.TARGET}:M*} ${.IMPSRC} 187.f.a: 188 ${COMPILE.f} ${FFLAGS_${.TARGET:.a=.o}:M*} ${.IMPSRC} 189 ${AR} ${ARFLAGS} $@ $*.o 190 rm -f $*.o 191 192.F: 193 ${LINK.F} -o $@ ${.IMPSRC} ${LDLIBS} 194.F.o: 195 ${COMPILE.F} ${FFLAGS_${.TARGET}:M*} ${.IMPSRC} 196.F.i: 197 ${COMPILE.F} ${FFLAGS_${.TARGET:.i=.o}:M*} -o $@ -E ${.IMPSRC} 198.F.a: 199 ${COMPILE.F} ${FFLAGS_${.TARGET:.a=.o}:M*} ${.IMPSRC} 200 ${AR} ${ARFLAGS} $@ $*.o 201 rm -f $*.o 202 203# Assembly 204.s: 205 ${LINK.s} -o $@ ${.IMPSRC} ${LDLIBS} 206.s.o: 207 ${COMPILE.s} ${AFLAGS_${.TARGET}:M*} ${.IMPSRC} 208.s.a: 209 ${COMPILE.s} ${AFLAGS_${.TARGET:.a=.o}:M*} ${.IMPSRC} 210 ${AR} ${ARFLAGS} $@ $*.o 211 rm -f $*.o 212 213.S: 214 ${LINK.S} -o $@ ${.IMPSRC} ${LDLIBS} 215.S.o: 216 ${COMPILE.S} ${AFLAGS_${.TARGET}:M*} ${.IMPSRC} 217.S.s: 218 ${COMPILE.S} ${AFLAGS_${.TARGET:.s=.o}:M*} -o $@ -E ${.IMPSRC} 219.S.a: 220 ${COMPILE.S} ${AFLAGS_${.TARGET:.a=.o}:M*} ${.IMPSRC} 221 ${AR} ${ARFLAGS} $@ $*.o 222 rm -f $*.o 223 224# Lex 225.l: 226 ${LEX.l} -o${.TARGET:R}.yy.c ${.IMPSRC} 227 ${LINK.c} -o $@ ${.TARGET:R}.yy.c ${LDLIBS} -ll 228 rm -f ${.TARGET:R}.yy.c 229.l.c: 230 ${LEX.l} -o$@ ${.IMPSRC} 231.l.o: 232 ${LEX.l} -o${.TARGET:R}.yy.c ${.IMPSRC} 233 ${COMPILE.c} ${CFLAGS_${.TARGET}:M*} -o $@ ${.TARGET:R}.yy.c 234 rm -f ${.TARGET:R}.yy.c 235 236# Yacc 237.y: 238 ${YACC.y} -o ${.TARGET:R}.tab.c ${.IMPSRC} 239 ${LINK.c} -o $@ ${.TARGET:R}.tab.c ${LDLIBS} 240 rm -f ${.TARGET:R}.tab.c 241.y.c: 242 ${YACC.y} -o $@ ${.IMPSRC} 243.y.o: 244 ${YACC.y} -o ${.TARGET:R}.tab.c ${.IMPSRC} 245 ${COMPILE.c} ${CFLAGS_${.TARGET}:M*} -o $@ ${.TARGET:R}.tab.c 246 rm -f ${.TARGET:R}.tab.c 247 248# Shell 249.sh: 250 rm -f $@ 251 cp ${.IMPSRC} $@ 252 chmod +x $@ 253 254# Debugging output 255.if defined(___DISPLAY_MAKEVARS) 256${.TARGETS}: .MADE 257 @: 258. if empty(.TARGETS) 259.MAIN: ___display_makevars 260___display_makevars:: 261. else 262.BEGIN: 263. endif 264. for _i in ${___DISPLAY_MAKEVARS} 265 @print -r -- ${${_i}:Q} 266. endfor 267.elif defined(___DUMP_MAKEVARS) 268${.TARGETS}: .MADE 269 @: 270. if empty(.TARGETS) 271.MAIN: ___dump_makevars 272___dump_makevars:: 273. else 274.BEGIN: 275. endif 276. for _i in ${___DUMP_MAKEVARS} 277 @print -r -- ${_i:Q:Q}=${${_i}:Q:Q} 278. endfor 279.endif 280 281.endif 282