diff --git a/build.sh b/build.sh index b34aea23..cdb0c628 100755 --- a/build.sh +++ b/build.sh @@ -1,35 +1,69 @@ #! /bin/sh +# Mes --- Maxwell Equations of Software +# Copyright © 2017 Jan Nieuwenhuizen +# +# This file is part of Mes. +# +# Mes is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or (at +# your option) any later version. +# +# Mes is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Mes. If not, see . + set -ex HEX2=${HEX2-hex2} M1=${M1-M1} +BLOOD_ELF=${BLOOD_ELF-blood-elf} MES_SEED=${MES_SEED-../mes-seed} $M1 --LittleEndian --Architecture=1\ -f stage0/x86.M1\ -f $MES_SEED/crt1.M1\ - > crt1.hex2 + -o crt1.hex2 $M1 --LittleEndian --Architecture=1\ -f stage0/x86.M1\ -f $MES_SEED/libc-mes.M1\ - > libc-mes.hex2 + -o libc-mes.hex2 $M1 --LittleEndian --Architecture=1\ -f stage0/x86.M1\ -f $MES_SEED/mes.M1\ - > mes.hex2 + -o mes.hex2 +$BLOOD_ELF\ + -f stage0/x86.M1\ + -f $MES_SEED/mes.M1\ + -f $MES_SEED/libc-mes.M1\ + -o mes-blood-elf-footer.M1 +$M1 --LittleEndian --Architecture=1\ + -f mes-blood-elf-footer.M1\ + -o mes-blood-elf-footer.hex2 $HEX2 --LittleEndian --Architecture=1 --BaseAddress=0x1000000\ -f stage0/elf32-header.hex2\ -f crt1.hex2\ -f libc-mes.hex2\ -f mes.hex2\ - -f stage0/elf32-footer-single-main.hex2\ - > mes -chmod +x mes - -#TODO: after building from seed, build from src/mes.c + -f mes-blood-elf-footer.hex2\ + --exec_enable\ + -o mes $M1 --LittleEndian --Architecture=1 -f\ stage0/x86.M1\ -f $MES_SEED/libc-mes+tcc.M1\ - > libc-mes+tcc.hex2 + -o libc-mes+tcc.hex2 + +# TODO: after building from seed, build from src/mes.c +# build-aux/mes-snarf.scm --mes src/gc.c +# build-aux/mes-snarf.scm --mes src/lib.c +# build-aux/mes-snarf.scm --mes src/math.c +# build-aux/mes-snarf.scm --mes src/mes.c +# build-aux/mes-snarf.scm --mes src/posix.c +# build-aux/mes-snarf.scm --mes src/reader.c +# build-aux/mes-snarf.scm --mes src/vector.c