| 1 | # ========== Copyright Header Begin ========================================== |
| 2 | # |
| 3 | # Hypervisor Software File: common.mk |
| 4 | # |
| 5 | # Copyright (c) 2006 Sun Microsystems, Inc. All Rights Reserved. |
| 6 | # |
| 7 | # - Do no alter or remove copyright notices |
| 8 | # |
| 9 | # - Redistribution and use of this software in source and binary forms, with |
| 10 | # or without modification, are permitted provided that the following |
| 11 | # conditions are met: |
| 12 | # |
| 13 | # - Redistribution of source code must retain the above copyright notice, |
| 14 | # this list of conditions and the following disclaimer. |
| 15 | # |
| 16 | # - Redistribution in binary form must reproduce the above copyright notice, |
| 17 | # this list of conditions and the following disclaimer in the |
| 18 | # documentation and/or other materials provided with the distribution. |
| 19 | # |
| 20 | # Neither the name of Sun Microsystems, Inc. or the names of contributors |
| 21 | # may be used to endorse or promote products derived from this software |
| 22 | # without specific prior written permission. |
| 23 | # |
| 24 | # This software is provided "AS IS," without a warranty of any kind. |
| 25 | # ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, |
| 26 | # INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A |
| 27 | # PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN |
| 28 | # MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL NOT BE LIABLE FOR |
| 29 | # ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR |
| 30 | # DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN |
| 31 | # OR ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR |
| 32 | # FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE |
| 33 | # DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, |
| 34 | # ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN IF |
| 35 | # SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. |
| 36 | # |
| 37 | # You acknowledge that this software is not designed, licensed or |
| 38 | # intended for use in the design, construction, operation or maintenance of |
| 39 | # any nuclear facility. |
| 40 | # |
| 41 | # ========== Copyright Header End ============================================ |
| 42 | # id: @(#)common.mk 1.24 06/10/13 |
| 43 | # purpose: |
| 44 | # copyright: Copyright 2006 Sun Microsystems, Inc. All Rights Reserved |
| 45 | # copyright: Use is subject to license terms. |
| 46 | |
| 47 | include ${ROOT}/default.mk |
| 48 | include ${ROOT}/tools/depend.mk |
| 49 | include ${BP}/forth.mk |
| 50 | include ${ROOT}/release.mk |
| 51 | |
| 52 | # Include the platform specific flags for building |
| 53 | FFLAGS += ${PLATFLAGS} |
| 54 | |
| 55 | # MAGIC files: |
| 56 | # When you build do a touch <thing> and you get more information |
| 57 | # VERBOSE = show the filenames as they load |
| 58 | # EXTERNAL = force all fcode symbols to be external |
| 59 | # NOTIFY = make the Tokenizing message appear |
| 60 | # WARNING = enable the tokenizer warning messages |
| 61 | # HEADERS = include the 'headers' dropin for added symbols |
| 62 | # FCODE-HEADERS = force non-external fcode symbols to have headers |
| 63 | # FCODE-HEADERLESS = force non-external fcode symbols to be headerless |
| 64 | |
| 65 | #DECOMPSIZ = ${SIZE} -f decomp.o | \ |
| 66 | # ${AWK} -F+ '{ print $$1 $$2 }' |\ |
| 67 | # ${AWK} -F\( ' { print $$2, $$1 }' |\ |
| 68 | # ${AWK} '{ print $$2+($$3+3)-(($$3+3) % 4) }' |
| 69 | |
| 70 | DECOMPSIZ = ${SIZE} -f decomp.o | \ |
| 71 | ${SED} -e 's/+/ /g' -e 's/(./ /g' -e 's/)//g' |\ |
| 72 | ${AWK} -f getsz.awk |
| 73 | |
| 74 | DECOMPSIZE = ${DECOMPSIZ:sh} |
| 75 | |
| 76 | # Dont define NormalMAP or CompressMAP; If you want to specify a mapfile |
| 77 | # just define MAPFILE. |
| 78 | GetMAP = if [ -z "${MAPFILE}" ]; \ |
| 79 | then /bin/echo ${SUN4U}/openboot${ROMSIZE}.map; \ |
| 80 | else /bin/echo ${MAPFILE}; \ |
| 81 | fi |
| 82 | |
| 83 | NormalMAP = ${GetMAP:sh} |
| 84 | |
| 85 | VERBOSE:sh = if [ -f VERBOSE ]; \ |
| 86 | then /bin/echo '-v'; \ |
| 87 | elif [ -f ../../VERBOSE ]; \ |
| 88 | then /bin/echo '-v'; \ |
| 89 | else /bin/echo ; fi ; |
| 90 | |
| 91 | COMPILER64:sh = if [ \( -f /usr/bin/optisa -a \ |
| 92 | "`/usr/bin/optisa sparcv9`" = "sparcv9" \) ]; \ |
| 93 | then /bin/echo '${BP}/os/unix/sparcv9/forth' ;\ |
| 94 | else /bin/echo '${BP}/os/unix/simforth/sparc/simforth' ; fi ; |
| 95 | |
| 96 | FORTH64 = ${COMPILER64} |
| 97 | |
| 98 | NOTIFY:sh = if [ -f NOTIFY ]; \ |
| 99 | then /bin/echo "/bin/echo"; \ |
| 100 | else /bin/echo "/bin/true"; fi; |
| 101 | |
| 102 | WARNINGS:sh = if [ -f WARNING ];\ |
| 103 | then /bin/echo "off"; \ |
| 104 | else /bin/echo "on"; fi ; |
| 105 | |
| 106 | EXTERNAL:sh = if [ -f EXTERNAL ];\ |
| 107 | then /bin/echo "force-external? on"; fi |
| 108 | |
| 109 | FCODE-HEADERS:sh = if [ -f FCODE-HEADERS ];\ |
| 110 | then /bin/echo "force-headers? on"; fi |
| 111 | |
| 112 | FCODE-HEADERLESS:sh = if [ -f FCODE-HEADERLESS ];\ |
| 113 | then /bin/echo "force-headerless? on"; fi |
| 114 | |
| 115 | |
| 116 | FTHFLAGS = |
| 117 | |
| 118 | TOKFLAGS = aout-header? off\ |
| 119 | silent ${WARNINGS}\ |
| 120 | ${EXTERNAL} ${FCODE-HEADERS} ${FCODE-HEADERLESS} |
| 121 | |
| 122 | HDEBUG:sh = if [ -f HEADERS ]; \ |
| 123 | then echo headers.di; fi |
| 124 | |
| 125 | FORTHDI = ${HDEBUG} |
| 126 | |
| 127 | # .SUFFIXES: .fc .tok ${SUFFIXES} |
| 128 | |
| 129 | etags: ${TOOLS}/fscope fscope.idx FORCE |
| 130 | ( BP=${BP}; export BP; \ |
| 131 | ${TOOLS}/fscope -a -e -o etags -m etag -f fscope.idx; ) |
| 132 | |
| 133 | tags: ${TOOLS}/fscope fscope.idx FORCE |
| 134 | ( BP=${BP}; export BP; \ |
| 135 | ${TOOLS}/fscope -a -e -o tags -m tag -f fscope.idx; ) |
| 136 | |
| 137 | decomp.o: ${TOOLDIR}/decomp.c |
| 138 | ${ECHO} Compiling $@ |
| 139 | ${RM} $@ |
| 140 | ${CC} -DSTANDALONE -fast -c ${TOOLDIR}/decomp.c -o decomp.o |
| 141 | |
| 142 | # Provide mechanisms to reuse loadprom, config and dropins files from other |
| 143 | # platforms |
| 144 | # |
| 145 | DROPIN_SRC = if [ -z "${DROPINSRC}" ]; \ |
| 146 | then /bin/echo ${PLATFORM}/release/dropins.src; \ |
| 147 | else /bin/echo ${DROPINSRC}; fi |
| 148 | |
| 149 | LOADPROM = if [ -z "${LOADFILE}" ]; \ |
| 150 | then /bin/echo ${PLATFORM}/loadprom.fth; \ |
| 151 | else /bin/echo ${LOADFILE}; fi |
| 152 | |
| 153 | CONFIGLOAD = if [ -z "${CONFIG}" ]; \ |
| 154 | then if [ -f ${PLATFORM}/setup/configload.fth -o \ |
| 155 | -f ${PLATFORM}/setup/SCCS/s.configload.fth ]; \ |
| 156 | then /bin/echo ${PLATFORM}/setup/configload.fth; \ |
| 157 | else /bin/echo ; fi \ |
| 158 | else /bin/echo ${CONFIG}; fi |
| 159 | |
| 160 | # If the makefile variable or the file MINI_T32 exists then we don't build |
| 161 | # t16 kernels. |
| 162 | MINI_T = if [ -z "${MINI_T32}" -a ! -f "MINI_T32" ]; \ |
| 163 | then /bin/echo "-t16"; \ |
| 164 | else /bin/echo; fi |
| 165 | |
| 166 | MINIFORTH = ${BP}/fm/kernel/sparc/k64mini${MINI_T:sh} |
| 167 | |
| 168 | config.bin: ../config.mk ${CONFIGLOAD:sh} |
| 169 | config.bin: ${FORTH64} ${MINIFORTH}.dic |
| 170 | ${NOTIFY} "Building config.bin (${MINI_T:sh})" |
| 171 | ( BP=${BP}; export BP; ${FORTH64} -e 800 \ |
| 172 | -d ${MINIFORTH}.dic \ |
| 173 | ${VERBOSE} ${RELEASE} ${FFLAGS} \ |
| 174 | -D kernel-hdr-file=${MINIFORTH}.fth \ |
| 175 | -D LOADFILE=${CONFIGLOAD:sh} \ |
| 176 | -D SAVEFILE=config.bin \ |
| 177 | -D MINIFORTH \ |
| 178 | ${BP}/arch/preload.fth ) |
| 179 | ${TOUCH} headers |
| 180 | ${SORT} +1 headers > config.headers |
| 181 | |
| 182 | config.idx: ${PLATFORM}/setup/configload.fth |
| 183 | config.idx: ${FORTH64} ${MINIFORTH}-xref.dic |
| 184 | ${NOTIFY} Building config.idx |
| 185 | ( BP=${BP}; export BP; ${FORTH64} -e 800 \ |
| 186 | -D MINIFORTH ${RELEASE} -D XREF -x config.idx \ |
| 187 | -d ${MINIFORTH}-xref.dic ${FFLAGS} \ |
| 188 | -D XREF-PRELOAD=${MINIFORTH}-xref.dic.idx \ |
| 189 | -D kernel-hdr-file=${MINIFORTH}-xref.fth \ |
| 190 | -D LOADFILE=${PLATFORM}/setup/configload.fth \ |
| 191 | ${BP}/arch/preload.fth ) |
| 192 | |
| 193 | reset.o: ../reset.mk stand.dic |
| 194 | reset.o: ${FORTH64} ${RESET} ${BP}/arch/preload.fth |
| 195 | ${NOTIFY} Building reset.o |
| 196 | ${GREP} headerless acfheaders > headerless |
| 197 | ${RM} $@ |
| 198 | ( BP=${BP}; export BP; ${COMPILER64} \ |
| 199 | -D dropin-mode -D TARGET-FILE=$@ \ |
| 200 | -D RESET -D LOADFILE=${RESET} \ |
| 201 | -e 900 -d stand.dic ${VERBOSE} ${FFLAGS} \ |
| 202 | -s "d# ${DECOMPSIZE} constant decomp-size" \ |
| 203 | -s " warning off" headerless \ |
| 204 | ${BP}/arch/preload.fth ) |
| 205 | ${RM} headerless |
| 206 | |
| 207 | reset.bin: decomp.o reset.o ${NormalMAP} ${ELF2BIN} |
| 208 | ${LD} -s -dn -e reset -M ${NormalMAP} reset.o decomp.o -o reset.elf |
| 209 | ${ELF2BIN} reset.elf reset.bin |
| 210 | ${RM} reset.elf |
| 211 | |
| 212 | openboot.bin: builtin.di ${MAKEPROM} reset.bin |
| 213 | ${NOTIFY} Building $@ |
| 214 | ${MAKEPROM} ${MAKEPROM-FLAGS} -o openboot.bin -n reset.bin builtin.di |
| 215 | |
| 216 | clean:: |
| 217 | ${RM} config.bin bootprom.bin reset.bin obp.bin |
| 218 | ${RM} config.di bootprom.di resetdi.o *.idx |
| 219 | |
| 220 | DATEFMT='+td %M td %H bwjoin td %d td %m bwjoin wljoin td %Y lxjoin' |
| 221 | |
| 222 | stand.dic: bootprom.bin |
| 223 | |
| 224 | forth.o: bootprom.bin |
| 225 | ${ECHO} REMOVE THIS TARGET $@ |
| 226 | |
| 227 | FIRMWAREREL = cat ${BP}/firmware.rel |
| 228 | |
| 229 | bootprom.bin: ${RESET} |
| 230 | bootprom.bin: ${BP}/firmware.rel ${CONFIGLOAD:sh} ${SUBREL-FILES:sh} |
| 231 | bootprom.bin: ${LOADPROM:sh} ${BP}/arch/preload.fth |
| 232 | bootprom.bin: ${FORTH64} ${KERNEL.DIC} builtin.fth |
| 233 | ${NOTIFY} "Building Openboot forth image (bootprom.bin)" |
| 234 | ${RM} $@ stand.dic sub-release headers |
| 235 | if [ ! -f revlevel ]; then echo 0 > revlevel; fi |
| 236 | ${ECHO} "headerless" > version.fth |
| 237 | ${ECHO} `date ${DATEFMT}` >> version.fth |
| 238 | ${ECHO} "constant compile-signature" >> version.fth |
| 239 | ${ECHO} "create (sub-release ,\" ${SUB-RELEASE}\"" >> version.fth |
| 240 | ${ECHO} "create (obp-release ,\" ${FIRMWAREREL:sh}\"" >> version.fth |
| 241 | ${ECHO} "' (sub-release is sub-release" >> version.fth |
| 242 | ${ECHO} "' (obp-release is obp-release" >> version.fth |
| 243 | ${ECHO} "headers" >> version.fth |
| 244 | ${EXPR} `cat revlevel` + 1 > revlevel |
| 245 | ( BP=${BP}; export BP; ${FORTH64} -e 800 \ |
| 246 | -d ${KERNEL.DIC} ${VERBOSE} ${FFLAGS} ${RELEASE} \ |
| 247 | -D kernel-hdr-file=${KERNEL}.fth \ |
| 248 | -D LOADFILE=${LOADPROM:sh} \ |
| 249 | -D SAVEFILE=bootprom.bin \ |
| 250 | ${BP}/arch/preload.fth ) |
| 251 | ${TOUCH} headers |
| 252 | ${SORT} +1 headers > acfheaders |
| 253 | |
| 254 | fscope.idx: ${FORTH64} ${KERNEL}-xref.dic bootprom.bin |
| 255 | ${NOTIFY} Creating $@ |
| 256 | ( BP=${BP}; export BP; ${FORTH64} -e 800 \ |
| 257 | -d ${KERNEL}-xref.dic ${FFLAGS} ${RELEASE} \ |
| 258 | -D kernel-hdr-file=${KERNEL}-xref.fth \ |
| 259 | -D XREF-PRELOAD=${KERNEL}-xref.dic.idx \ |
| 260 | -D XREF -x fscope.idx \ |
| 261 | -D LOADFILE=${LOADPROM:sh} \ |
| 262 | ${BP}/arch/preload.fth ) |
| 263 | |
| 264 | clean:: ${DIDEPEND} ${DROPIN_SRC:sh} |
| 265 | ${RM} dropins.mk builtin.fth |
| 266 | ${RM} forth.bin openboot.bin |
| 267 | ${RM} forth.bin0 openboot.bin0 |
| 268 | ${RM} forth.out openboot.prom |
| 269 | ${RM} reset.o decomp.o forth.o cforth.o |
| 270 | ${RM} version.fth lastversion.fth stand.dic |
| 271 | ${RM} kbdtrans.fc sun-logo.dat usbkbds.dat builtin.di |
| 272 | ${RM} acfheaders headers revlevel- |
| 273 | ${RM} openboot.img |
| 274 | ${RM} `${DIDEPEND} ${PLATFLAGS} -t ${DROPIN_SRC:sh}` |
| 275 | ${RM} `${DIDEPEND} ${PLATFLAGS} -s ${DROPIN_SRC:sh}` |
| 276 | ${RM} *.idx *.fc *.di *.o |
| 277 | ${RM} core HEADERS |
| 278 | |
| 279 | TOKENRULE = \ |
| 280 | ( fname=".XX.YY.XX"; for i in $^; do \ |
| 281 | if ${ECHO} $$i | ${EGREP} -e "\.tok" > /dev/null; then \ |
| 282 | fname=$$i; \ |
| 283 | fi; \ |
| 284 | done; \ |
| 285 | if [ -f $$fname ]; then \ |
| 286 | ${NOTIFY} "Tokenizing $$fname"; \ |
| 287 | BP=${BP}; export BP; \ |
| 288 | ${TOKENIZE} ${VERBOSE} ${RELEASE} -x $*.idx \ |
| 289 | -s "${FTHFLAGS}" \ |
| 290 | -s "${TOKFLAGS} tokenize $$fname $*.fc"; \ |
| 291 | else \ |
| 292 | ${RM} $*.fc; \ |
| 293 | ${MAKE} $*.fc; \ |
| 294 | fi ) |
| 295 | |
| 296 | %.fc: |
| 297 | ${TOKENRULE} |
| 298 | |
| 299 | install: backup |
| 300 | @${WHAT} openboot.bin |
| 301 | if [ -f RTARGET ]; then \ |
| 302 | /bin/echo Installing `cat RTARGET`/openboot.bin ;\ |
| 303 | rcp -p openboot.bin `cat RTARGET`;\ |
| 304 | if [ -f forth.flash ]; then \ |
| 305 | /bin/echo Installing `cat RTARGET`/forth.flash ;\ |
| 306 | rcp -p forth.flash `cat RTARGET`;\ |
| 307 | fi;\ |
| 308 | fi ;\ |
| 309 | if [ -f TARGET ]; then \ |
| 310 | /bin/echo Installing `cat TARGET` ;\ |
| 311 | cp -p openboot.bin `cat TARGET`;\ |
| 312 | fi |
| 313 | |
| 314 | DEPEND.MK = ../depend.mk |
| 315 | DEPEND.MK1 = depend.new |
| 316 | # As of 2004, the convention is just the current year, not a range of years. |
| 317 | CDATE:sh = /bin/date '+Copyright %Y Sun Microsystems, Inc.' |
| 318 | # depend := FFLAGS += -v |
| 319 | depend:: ${DEPEND.MK} ${TOOLS}/move-if-changed builtin.fth stand.dic FORCE |
| 320 | ${RM} ${DEPEND.MK1} |
| 321 | ${ECHO} "# id: ""%""Z""%""%""M""%" " %""I""%" " %""E""%">${DEPEND.MK1} |
| 322 | ${ECHO} "# purpose: ""%""Y""%" >>${DEPEND.MK1} |
| 323 | ${ECHO} "# copyright: ${CDATE} All Rights Reserved" >>${DEPEND.MK1} |
| 324 | ${ECHO} "# copyright: Use is subject to license terms." >>${DEPEND.MK1} |
| 325 | ${ECHO} "# This is a machine generated file" >>${DEPEND.MK1} |
| 326 | ${ECHO} "# DO NOT EDIT IT BY HAND" >>${DEPEND.MK1} |
| 327 | ( BP=${BP}; export BP; ${FORTH64} -e 800 -d ${KERNEL.DIC} \ |
| 328 | -D DEPEND -D kernel-hdr-file=${KERNEL}.fth ${FFLAGS} -u -v \ |
| 329 | -D LOADFILE=${LOADPROM:sh} \ |
| 330 | ${BP}/arch/preload.fth ) |\ |
| 331 | ${GREP} File: |\ |
| 332 | ${EGREP} -v "( version.fth| headers| loadprom.fth)" |\ |
| 333 | ${SED} -e 's/File: /bootprom.bin: /'|\ |
| 334 | ${SED} -e 's:${BP}:$${BP}:' |\ |
| 335 | ${SORT}|${UNIQ} >>${DEPEND.MK1} |
| 336 | ${TOOLS}/move-if-changed ${DEPEND.MK} ${DEPEND.MK1} |
| 337 | |
| 338 | depend:: ${DEPEND.MK} ${TOOLS}/move-if-changed builtin.fth stand.dic FORCE |
| 339 | ( BP=${BP}; export BP; \ |
| 340 | if [ ! -z "${CONFIGLOAD:sh}" ]; then \ |
| 341 | ${RM} ${DEPEND.MK1}; \ |
| 342 | ${ECHO} "# id: ""%""Z""%""%""M""% %""I""%" " %""E""%">${DEPEND.MK1}; \ |
| 343 | ${ECHO} "# purpose: ""%""Y""%" >>${DEPEND.MK1}; \ |
| 344 | ${ECHO} "# copyright: ${CDATE} All Rights Reserved" >>${DEPEND.MK1}; \ |
| 345 | ${ECHO} "# copyright: Use is subject to license terms." >>${DEPEND.MK1}; \ |
| 346 | ${ECHO} "# This is a machine generated file" >>${DEPEND.MK1}; \ |
| 347 | ${ECHO} "# DO NOT EDIT IT BY HAND" >>${DEPEND.MK1}; \ |
| 348 | ( ${FORTH64} -e 800 -d ${KERNEL.DIC} \ |
| 349 | -D MINIFORTH -D DEPEND ${RELEASE} \ |
| 350 | -D kernel-hdr-file=${KERNEL}.fth ${FFLAGS} -u -v \ |
| 351 | -D LOADFILE=${CONFIGLOAD:sh} \ |
| 352 | ${BP}/arch/preload.fth ) |\ |
| 353 | ${GREP} File: | \ |
| 354 | ${EGREP} -v "( version.fth| headers)" |\ |
| 355 | ${SED} -e 's/File: /config.bin: /'|\ |
| 356 | ${SED} -e 's:${BP}:$${BP}:'|\ |
| 357 | ${SORT}|${UNIQ} >>${DEPEND.MK1}; \ |
| 358 | ${TOOLS}/move-if-changed ../config.mk ${DEPEND.MK1}; \ |
| 359 | else \ |
| 360 | exit 0; \ |
| 361 | fi; ) |
| 362 | |
| 363 | depend:: ../reset.mk stand.dic decomp.o ${TOOLS}/move-if-changed FORCE |
| 364 | ${GREP} headerless acfheaders > headerless |
| 365 | ${RM} reset.o |
| 366 | ${RM} ${DEPEND.MK1} |
| 367 | ${ECHO} "# id: ""%""Z""%""%""M""%" " %""I""%" " %""E""%">${DEPEND.MK1} |
| 368 | ${ECHO} "# purpose: ""%""Y""%" >>${DEPEND.MK1} |
| 369 | ${ECHO} "# copyright: ${CDATE} All Rights Reserved" >>${DEPEND.MK1} |
| 370 | ${ECHO} "# copyright: Use is subject to license terms." >>${DEPEND.MK1} |
| 371 | ${ECHO} "# This is a machine generated file" >>${DEPEND.MK1} |
| 372 | ${ECHO} "# DO NOT EDIT IT BY HAND" >>${DEPEND.MK1} |
| 373 | ( BP=${BP}; export BP; ${COMPILER64} \ |
| 374 | -D RESET -D DEPEND ${RELEASE} -D LOADFILE=${RESET} \ |
| 375 | -e 900 -d stand.dic ${FFLAGS} -v -u \ |
| 376 | -s "d# ${DECOMPSIZE} constant decomp-size" \ |
| 377 | -s " warning off" headerless \ |
| 378 | ${BP}/arch/preload.fth ) |\ |
| 379 | ${GREP} File: |\ |
| 380 | ${EGREP} -v "(headerless| reset.fth)" |\ |
| 381 | ${SED} -e 's/File: /reset.o: /'|\ |
| 382 | ${SED} -e 's:${BP}:$${BP}:'|\ |
| 383 | ${SORT}|${UNIQ} >>${DEPEND.MK1} |
| 384 | ${TOOLS}/move-if-changed ../reset.mk ${DEPEND.MK1} |
| 385 | ${RM} headerless |
| 386 | |
| 387 | backup: all ${MAKEPROM} |
| 388 | ${RM} forth.flash |
| 389 | if [ -f openboot.ok ]; then \ |
| 390 | ${MAKEPROM} -o forth.flash openboot.bin openboot.ok ;\ |
| 391 | fi |
| 392 | |
| 393 | clobber:: |
| 394 | ${SCCS} clean |
| 395 | |
| 396 | builtin.fth: ${DIDEPEND} ${DROPIN_SRC:sh} |
| 397 | ${DIDEPEND} ${PLATFLAGS} -c ${DROPIN_SRC:sh} > builtin.fth |
| 398 | |
| 399 | dropins.mk: ${DIDEPEND} ${DROPIN_SRC:sh} |
| 400 | ${DIDEPEND} ${PLATFLAGS} -d ${DROPIN_SRC:sh} > dropins.mk |
| 401 | ${ECHO} >> dropins.mk |
| 402 | ${ECHO} "builtin.di: `${DIDEPEND} ${PLATFLAGS} -t ${DROPIN_SRC:sh}`" >> dropins.mk |
| 403 | |
| 404 | headers.di: ${TOOLS}/makedi headers |
| 405 | ${ECHO} "\\\ Forth Comment" > headers.dat |
| 406 | ${CAT} headers >> headers.dat |
| 407 | ${MAKEDI} headers.dat headers |
| 408 | ${RM} headers.dat |
| 409 | |
| 410 | # Get the dropins that make an image. |
| 411 | |
| 412 | DIFCODE = if [ ! -f ${DROPIN_SRC:sh} ]; then \ |
| 413 | ( cd `dirname ${DROPIN_SRC:sh}`; sccs get dropins.src; ) fi; \ |
| 414 | ${DIDEPEND} ${PLATFLAGS} -s ${DROPIN_SRC:sh} | \ |
| 415 | sed -e 's/config.bin//' -e 's/bootprom.bin//' |
| 416 | |
| 417 | DITARGETS = ${DIDEPEND} ${PLATFLAGS} -t ${DROPIN_SRC:sh} |
| 418 | |
| 419 | builtin.di: ${FORTH} ${TOKENIZEDIC} |
| 420 | builtin.di: ${DROPIN_SRC:sh} ${TOOLS}/makedi ${FORTHDI} ${DIDEPEND} |
| 421 | cat ${FORTHDI} ${DITARGETS:sh} > builtin.di |
| 422 | |
| 423 | include dropins.mk |