build: Fixes for Debian and /bin/sh == dash.
* build.sh: Use separate export stanzas. Use command -v (WAS: type -p). Fixes sh, /bin/sh == dash. * build-aux/build-cc.sh: Likewise. * build-aux/build-guile.sh: Likewise. * build-aux/build-mes.sh: Likewise. * build-aux/build-mlibc.sh: Likewise. * build-aux/cc-mes.sh: Likewise. * build-aux/check-mescc.sh: Likewise. * check.sh: Likewise. * install.sh: Likewise. * scripts/mescc: Likewise.
This commit is contained in:
parent
ad88aaa5be
commit
ba17eeeefe
8
.gitignore
vendored
8
.gitignore
vendored
|
@ -14,13 +14,17 @@
|
||||||
*.hex2
|
*.hex2
|
||||||
*.hex2-o
|
*.hex2-o
|
||||||
*.log
|
*.log
|
||||||
*.stderr
|
*.mes-o
|
||||||
*.stdout
|
*.mes-stdout
|
||||||
*.mini-M1
|
*.mini-M1
|
||||||
*.mini-guile
|
*.mini-guile
|
||||||
*.mini-hex2
|
*.mini-hex2
|
||||||
*.mlibc-gcc
|
*.mlibc-gcc
|
||||||
*.mlibc-o
|
*.mlibc-o
|
||||||
|
*.mlibc-out
|
||||||
|
*.mlibc-stdout
|
||||||
|
*.stderr
|
||||||
|
*.stdout
|
||||||
*.tcc-guile
|
*.tcc-guile
|
||||||
!/stage0/*
|
!/stage0/*
|
||||||
!/stage0/*.c
|
!/stage0/*.c
|
||||||
|
|
61
GNUmakefile
61
GNUmakefile
|
@ -3,9 +3,6 @@ GUILE_FLAGS:=--no-auto-compile -L . -L guile -C . -C guile
|
||||||
|
|
||||||
include .config.make
|
include .config.make
|
||||||
|
|
||||||
export PREFIX
|
|
||||||
export VERSION
|
|
||||||
|
|
||||||
PHONY_TARGETS:= all all-go check clean clean-go default help install
|
PHONY_TARGETS:= all all-go check clean clean-go default help install
|
||||||
.PHONY: $(PHONY_TARGETS)
|
.PHONY: $(PHONY_TARGETS)
|
||||||
|
|
||||||
|
@ -37,3 +34,61 @@ seed:
|
||||||
MES=guile GUILE=guile SEED=1 build-aux/build-mes.sh
|
MES=guile GUILE=guile SEED=1 build-aux/build-mes.sh
|
||||||
cd ../mes-seed && ./bootstrap.sh && cd ../mes
|
cd ../mes-seed && ./bootstrap.sh && cd ../mes
|
||||||
MES=guile GUILE=guile SEED=1 build-aux/build-mes.sh
|
MES=guile GUILE=guile SEED=1 build-aux/build-mes.sh
|
||||||
|
|
||||||
|
ifdef PREFIX
|
||||||
|
export PREFIX
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifdef VERSION
|
||||||
|
export VERSION
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifdef CC
|
||||||
|
export CC
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifdef CC32
|
||||||
|
export CC32
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifdef M1
|
||||||
|
export M1
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifdef HEX2
|
||||||
|
export HEX2
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifdef GUILE
|
||||||
|
export GUILE
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifdef GUILE_LOAD_PATH
|
||||||
|
export GUILE_LOAD_PATH
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifdef GUILE_LOAD_COMPILED_PATH
|
||||||
|
export GUILE_LOAD_COMPILED_PATH
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifdef CFLAGS
|
||||||
|
export CFLAGS
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifdef C32FLAGS
|
||||||
|
export C32FLAGS
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifdef HEX2FLAGS
|
||||||
|
export HEX2FLAGS
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifdef M1FLAGS
|
||||||
|
export M1FLAGS
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifdef MESCCFLAGS
|
||||||
|
export MESCCFLAGS
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -20,7 +20,23 @@
|
||||||
|
|
||||||
set -ex
|
set -ex
|
||||||
|
|
||||||
export CC=${CC-gcc}
|
export CC CFLAGS CPPFLAGS
|
||||||
|
|
||||||
|
CC=${CC-gcc}
|
||||||
|
CFLAGS=${CFLAGS-"
|
||||||
|
--std=gnu99
|
||||||
|
-O0
|
||||||
|
-g
|
||||||
|
"}
|
||||||
|
|
||||||
|
CPPFLAGS=${CPPFLAGS-"
|
||||||
|
-D VERSION=\"$VERSION\"
|
||||||
|
-D MODULEDIR=\"$MODULEDIR\"
|
||||||
|
-D PREFIX=\"$PREFIX\"
|
||||||
|
-I src
|
||||||
|
-I lib
|
||||||
|
-I include
|
||||||
|
"}
|
||||||
|
|
||||||
build-aux/mes-snarf.scm src/gc.c
|
build-aux/mes-snarf.scm src/gc.c
|
||||||
build-aux/mes-snarf.scm src/lib.c
|
build-aux/mes-snarf.scm src/lib.c
|
||||||
|
@ -30,21 +46,6 @@ build-aux/mes-snarf.scm src/posix.c
|
||||||
build-aux/mes-snarf.scm src/reader.c
|
build-aux/mes-snarf.scm src/reader.c
|
||||||
build-aux/mes-snarf.scm src/vector.c
|
build-aux/mes-snarf.scm src/vector.c
|
||||||
|
|
||||||
export CPPFLAGS=${CPPFLAGS-"
|
|
||||||
-D VERSION=\"$VERSION\"
|
|
||||||
-D MODULEDIR=\"$MODULEDIR\"
|
|
||||||
-D PREFIX=\"$PREFIX\"
|
|
||||||
-I src
|
|
||||||
-I lib
|
|
||||||
-I include
|
|
||||||
"}
|
|
||||||
|
|
||||||
export CFLAGS=${CFLAGS-"
|
|
||||||
--std=gnu99
|
|
||||||
-O0
|
|
||||||
-g
|
|
||||||
"}
|
|
||||||
|
|
||||||
NOLINK=1 sh build-aux/cc.sh lib/libc-gcc
|
NOLINK=1 sh build-aux/cc.sh lib/libc-gcc
|
||||||
#NOLINK=1 sh build-aux/cc.sh lib/libc+tcc-gcc
|
#NOLINK=1 sh build-aux/cc.sh lib/libc+tcc-gcc
|
||||||
|
|
||||||
|
|
|
@ -20,7 +20,8 @@
|
||||||
|
|
||||||
set -ex
|
set -ex
|
||||||
|
|
||||||
export GUILE=${GUILE-$(type -p guile)}
|
export GUILE
|
||||||
|
GUILE=${GUILE-$(command -v guile)}
|
||||||
|
|
||||||
SCM_FILES="
|
SCM_FILES="
|
||||||
language/c99/compiler.scm
|
language/c99/compiler.scm
|
||||||
|
|
|
@ -18,27 +18,47 @@
|
||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with Mes. If not, see <http://www.gnu.org/licenses/>.
|
# along with Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
set -ex
|
set -x
|
||||||
|
|
||||||
export HEX2=${HEX2-hex2}
|
export BLOOD_ELF GUILE HEX2 M1 MES MESCC
|
||||||
export M1=${M1-M1}
|
export M1FLAGS HEX2FLAGS PREPROCESS
|
||||||
export BLOOD_ELF=${BLOOD_ELF-blood-elf}
|
export MES_SEED MES_ARENA
|
||||||
export MES_SEED=${MES_SEED-../mes-seed}
|
|
||||||
export MESCC=${MESCC-$(type -p mescc)}
|
HEX2=${HEX2-hex2}
|
||||||
|
M1=${M1-M1}
|
||||||
|
BLOOD_ELF=${BLOOD_ELF-blood-elf}
|
||||||
|
MES_SEED=${MES_SEED-../mes-seed}
|
||||||
|
MESCC=${MESCC-$(command -v mescc)}
|
||||||
[ -z "$MESCC" ] && MESCC=scripts/mescc
|
[ -z "$MESCC" ] && MESCC=scripts/mescc
|
||||||
export MES=${MES-$(type -p mes)}
|
MES=${MES-$(command -v mes)}
|
||||||
[ -z "$MES" ] && MES=src/mes
|
[ -z "$MES" ] && MES=src/mes
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
M1FLAGS=${M1FLAGS-"
|
||||||
|
--LittleEndian
|
||||||
|
--Architecture=1
|
||||||
|
"}
|
||||||
|
HEX2FLAGS=${HEX2FLAGS-"
|
||||||
|
--LittleEndian
|
||||||
|
--Architecture=1
|
||||||
|
--BaseAddress=0x1000000
|
||||||
|
"}
|
||||||
|
|
||||||
if [ -d "$MES_SEED" ]; then
|
if [ -d "$MES_SEED" ]; then
|
||||||
$M1 --LittleEndian --Architecture=1\
|
$M1\
|
||||||
|
$M1FLAGS\
|
||||||
-f stage0/x86.M1\
|
-f stage0/x86.M1\
|
||||||
-f $MES_SEED/crt1.M1\
|
-f $MES_SEED/crt1.M1\
|
||||||
-o lib/crt1.hex2
|
-o lib/crt1.hex2
|
||||||
$M1 --LittleEndian --Architecture=1\
|
$M1\
|
||||||
|
$M1FLAGS\
|
||||||
-f stage0/x86.M1\
|
-f stage0/x86.M1\
|
||||||
-f $MES_SEED/libc-mes.M1\
|
-f $MES_SEED/libc-mes.M1\
|
||||||
-o lib/libc-mes.hex2
|
-o lib/libc-mes.hex2
|
||||||
$M1 --LittleEndian --Architecture=1\
|
$M1\
|
||||||
|
--LittleEndian\
|
||||||
|
--Architecture=1\
|
||||||
-f stage0/x86.M1\
|
-f stage0/x86.M1\
|
||||||
-f $MES_SEED/mes.M1\
|
-f $MES_SEED/mes.M1\
|
||||||
-o src/mes.hex2
|
-o src/mes.hex2
|
||||||
|
@ -47,10 +67,13 @@ if [ -d "$MES_SEED" ]; then
|
||||||
-f $MES_SEED/mes.M1\
|
-f $MES_SEED/mes.M1\
|
||||||
-f $MES_SEED/libc-mes.M1\
|
-f $MES_SEED/libc-mes.M1\
|
||||||
-o src/mes.blood-elf.M1
|
-o src/mes.blood-elf.M1
|
||||||
$M1 --LittleEndian --Architecture=1\
|
$M1\
|
||||||
|
--LittleEndian\
|
||||||
|
--Architecture=1\
|
||||||
-f src/mes.blood-elf.M1\
|
-f src/mes.blood-elf.M1\
|
||||||
-o src/mes.blood-elf.hex2
|
-o src/mes.blood-elf.hex2
|
||||||
$HEX2 --LittleEndian --Architecture=1 --BaseAddress=0x1000000\
|
$HEX2\
|
||||||
|
$HEX2FLAGS\
|
||||||
-f stage0/elf32-header.hex2\
|
-f stage0/elf32-header.hex2\
|
||||||
-f lib/crt1.hex2\
|
-f lib/crt1.hex2\
|
||||||
-f lib/libc-mes.hex2\
|
-f lib/libc-mes.hex2\
|
||||||
|
@ -60,16 +83,17 @@ if [ -d "$MES_SEED" ]; then
|
||||||
-o src/mes.seed-out
|
-o src/mes.seed-out
|
||||||
cp src/mes.seed-out src/mes
|
cp src/mes.seed-out src/mes
|
||||||
|
|
||||||
$M1 --LittleEndian --Architecture=1 -f\
|
$M1\
|
||||||
stage0/x86.M1\
|
$M1FLAGS\
|
||||||
|
-f stage0/x86.M1\
|
||||||
-f $MES_SEED/libc+tcc-mes.M1\
|
-f $MES_SEED/libc+tcc-mes.M1\
|
||||||
-o src/libc+tcc-mes.hex2
|
-o src/libc+tcc-mes.hex2
|
||||||
fi
|
fi
|
||||||
|
|
||||||
[ -n "$SEED" ] && exit 0
|
[ -n "$SEED" ] && exit 0
|
||||||
|
|
||||||
export GUILE=src/mes
|
GUILE=src/mes
|
||||||
export MES_ARENA=${MES_ARENA-30000000}
|
MES_ARENA=${MES_ARENA-30000000}
|
||||||
sh build-aux/mes-snarf.scm --mes src/gc.c
|
sh build-aux/mes-snarf.scm --mes src/gc.c
|
||||||
sh build-aux/mes-snarf.scm --mes src/lib.c
|
sh build-aux/mes-snarf.scm --mes src/lib.c
|
||||||
sh build-aux/mes-snarf.scm --mes src/math.c
|
sh build-aux/mes-snarf.scm --mes src/math.c
|
||||||
|
@ -78,7 +102,7 @@ sh build-aux/mes-snarf.scm --mes src/posix.c
|
||||||
sh build-aux/mes-snarf.scm --mes src/reader.c
|
sh build-aux/mes-snarf.scm --mes src/reader.c
|
||||||
sh build-aux/mes-snarf.scm --mes src/vector.c
|
sh build-aux/mes-snarf.scm --mes src/vector.c
|
||||||
|
|
||||||
export PREPROCESS=1
|
PREPROCESS=1
|
||||||
NOLINK=1 sh build-aux/cc-mes.sh lib/crt1
|
NOLINK=1 sh build-aux/cc-mes.sh lib/crt1
|
||||||
NOLINK=1 sh build-aux/cc-mes.sh lib/mini-libc-mes
|
NOLINK=1 sh build-aux/cc-mes.sh lib/mini-libc-mes
|
||||||
NOLINK=1 sh build-aux/cc-mes.sh lib/libc-mes
|
NOLINK=1 sh build-aux/cc-mes.sh lib/libc-mes
|
||||||
|
|
|
@ -20,7 +20,9 @@
|
||||||
|
|
||||||
set -ex
|
set -ex
|
||||||
|
|
||||||
export CC32=${CC32-$(type -p i686-unknown-linux-gnu-gcc)}
|
export CC32 CPPFLAGS C32FLAGS
|
||||||
|
|
||||||
|
CC32=${CC32-$(command -v i686-unknown-linux-gnu-gcc)}
|
||||||
build-aux/mes-snarf.scm --mes src/gc.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/lib.c
|
||||||
build-aux/mes-snarf.scm --mes src/math.c
|
build-aux/mes-snarf.scm --mes src/math.c
|
||||||
|
@ -37,7 +39,7 @@ build-aux/mes-snarf.scm src/posix.c
|
||||||
build-aux/mes-snarf.scm src/reader.c
|
build-aux/mes-snarf.scm src/reader.c
|
||||||
build-aux/mes-snarf.scm src/vector.c
|
build-aux/mes-snarf.scm src/vector.c
|
||||||
|
|
||||||
export CPPFLAGS=${CPPFLAGS-"
|
CPPFLAGS=${CPPFLAGS-"
|
||||||
-D VERSION=\"$VERSION\"
|
-D VERSION=\"$VERSION\"
|
||||||
-D MODULEDIR=\"$MODULEDIR\"
|
-D MODULEDIR=\"$MODULEDIR\"
|
||||||
-D PREFIX=\"$PREFIX\"
|
-D PREFIX=\"$PREFIX\"
|
||||||
|
@ -46,7 +48,7 @@ export CPPFLAGS=${CPPFLAGS-"
|
||||||
-I include
|
-I include
|
||||||
"}
|
"}
|
||||||
|
|
||||||
export C32FLAGS=${C32FLAGS-"
|
C32FLAGS=${C32FLAGS-"
|
||||||
--std=gnu99
|
--std=gnu99
|
||||||
-O0
|
-O0
|
||||||
-fno-stack-protector
|
-fno-stack-protector
|
||||||
|
|
|
@ -18,15 +18,19 @@
|
||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with Mes. If not, see <http://www.gnu.org/licenses/>.
|
# along with Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
set -ex
|
set -x
|
||||||
|
|
||||||
export HEX2=${HEX2-hex2}
|
export BLOOD_ELF GUILE HEX2 M1 MES MESCC
|
||||||
export M1=${M1-M1}
|
export M1FLAGS HEX2FLAGS PREPROCESS
|
||||||
export BLOOD_ELF=${BLOOD_ELF-blood-elf}
|
export MES_SEED MES_ARENA
|
||||||
export MES_SEED=${MES_SEED-../mes-seed}
|
|
||||||
export MESCC=${MESCC-$(type -p mescc)}
|
HEX2=${HEX2-hex2}
|
||||||
|
M1=${M1-M1}
|
||||||
|
BLOOD_ELF=${BLOOD_ELF-blood-elf}
|
||||||
|
MES_SEED=${MES_SEED-../mes-seed}
|
||||||
|
MESCC=${MESCC-$(command -v mescc)}
|
||||||
[ -z "$MESCC" ] && MESCC=scripts/mescc
|
[ -z "$MESCC" ] && MESCC=scripts/mescc
|
||||||
export MES=${MES-$(type -p mes)}
|
MES=${MES-$(command -v mes)}
|
||||||
[ -z "$MES" ] && MES=src/mes
|
[ -z "$MES" ] && MES=src/mes
|
||||||
|
|
||||||
CPPFLAGS=${CPPFLAGS-"
|
CPPFLAGS=${CPPFLAGS-"
|
||||||
|
@ -41,9 +45,20 @@ CPPFLAGS=${CPPFLAGS-"
|
||||||
MESCCLAGS=${MESCCFLAGS-"
|
MESCCLAGS=${MESCCFLAGS-"
|
||||||
"}
|
"}
|
||||||
LIBC=${LIBC-lib/libc}
|
LIBC=${LIBC-lib/libc}
|
||||||
|
M1FLAGS=${M1FLAGS-"
|
||||||
|
--LittleEndian
|
||||||
|
--Architecture=1
|
||||||
|
"}
|
||||||
|
HEX2FLAGS=${HEX2FLAGS-"
|
||||||
|
--LittleEndian
|
||||||
|
--Architecture=1
|
||||||
|
--BaseAddress=0x1000000
|
||||||
|
"}
|
||||||
|
|
||||||
c=$1
|
c=$1
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
if [ -n "$PREPROCESS" ]; then
|
if [ -n "$PREPROCESS" ]; then
|
||||||
sh -x $MESCC\
|
sh -x $MESCC\
|
||||||
-E\
|
-E\
|
||||||
|
@ -64,7 +79,8 @@ else
|
||||||
"$c".c
|
"$c".c
|
||||||
fi
|
fi
|
||||||
|
|
||||||
$M1 --LittleEndian --Architecture=1\
|
$M1\
|
||||||
|
$M1FLAGS\
|
||||||
-f stage0/x86.M1\
|
-f stage0/x86.M1\
|
||||||
-f "$c".M1\
|
-f "$c".M1\
|
||||||
-o "$c".hex2
|
-o "$c".hex2
|
||||||
|
@ -75,10 +91,12 @@ if [ -z "$NOLINK" ]; then
|
||||||
-f "$c".M1\
|
-f "$c".M1\
|
||||||
-f $LIBC-mes.M1\
|
-f $LIBC-mes.M1\
|
||||||
-o "$c".blood-elf-M1
|
-o "$c".blood-elf-M1
|
||||||
$M1 --LittleEndian --Architecture=1\
|
$M1\
|
||||||
|
$M1FLAGS\
|
||||||
-f "$c".blood-elf-M1\
|
-f "$c".blood-elf-M1\
|
||||||
-o "$c".blood-elf-hex2
|
-o "$c".blood-elf-hex2
|
||||||
$HEX2 --LittleEndian --Architecture=1 --BaseAddress=0x1000000\
|
$HEX2\
|
||||||
|
$HEX2FLAGS\
|
||||||
-f stage0/elf32-header.hex2\
|
-f stage0/elf32-header.hex2\
|
||||||
-f lib/crt1.hex2\
|
-f lib/crt1.hex2\
|
||||||
-f $LIBC-mes.hex2\
|
-f $LIBC-mes.hex2\
|
||||||
|
|
|
@ -20,8 +20,9 @@
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
export GUILE=${GUILE-guile}
|
export GUILE MES
|
||||||
export MES=${MES-./src/mes}
|
GUILE=${GUILE-guile}
|
||||||
|
MES=${MES-./src/mes}
|
||||||
|
|
||||||
tests="
|
tests="
|
||||||
|
|
||||||
|
|
|
@ -18,18 +18,22 @@
|
||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with Mes. If not, see <http://www.gnu.org/licenses/>.
|
# along with Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
export MES=${MES-src/mes}
|
export BLOOD_ELF GUILE HEX2 M1 MES MESCC
|
||||||
export MESCC=${MESCC-scripts/mescc}
|
export M1FLAGS HEX2FLAGS PREPROCESS LIBC
|
||||||
export GUILE=${GUILE-guile}
|
export MES_ARENA MES_PREFIX MES_SEED
|
||||||
export MES_PREFIX=${MES_PREFIX-.}
|
|
||||||
|
|
||||||
export HEX2=${HEX2-hex2}
|
MES=${MES-src/mes}
|
||||||
export M1=${M1-M1}
|
MESCC=${MESCC-scripts/mescc}
|
||||||
export BLOOD_ELF=${BLOOD_ELF-blood-elf}
|
GUILE=${GUILE-guile}
|
||||||
export MES_SEED=${MES_SEED-../mes-seed}
|
MES_PREFIX=${MES_PREFIX-.}
|
||||||
export MESCC=${MESCC-$(type -p mescc)}
|
|
||||||
|
HEX2=${HEX2-hex2}
|
||||||
|
M1=${M1-M1}
|
||||||
|
BLOOD_ELF=${BLOOD_ELF-blood-elf}
|
||||||
|
MES_SEED=${MES_SEED-../mes-seed}
|
||||||
|
MESCC=${MESCC-$(command -v mescc)}
|
||||||
[ -z "$MESCC" ] && MESCC=scripts/mescc
|
[ -z "$MESCC" ] && MESCC=scripts/mescc
|
||||||
export MES=${MES-$(type -p mes)}
|
MES=${MES-$(command -v mes)}
|
||||||
[ -z "$MES" ] && MES=src/mes
|
[ -z "$MES" ] && MES=src/mes
|
||||||
|
|
||||||
|
|
||||||
|
@ -115,7 +119,7 @@ expect=$(echo $broken | wc -w)
|
||||||
pass=0
|
pass=0
|
||||||
fail=0
|
fail=0
|
||||||
total=0
|
total=0
|
||||||
export LIBC=libc/libc
|
LIBC=libc/libc
|
||||||
for t in $tests; do
|
for t in $tests; do
|
||||||
if [ -z "${t/[012][0-9]-*/}" ]; then
|
if [ -z "${t/[012][0-9]-*/}" ]; then
|
||||||
LIBC=lib/mini-libc;
|
LIBC=lib/mini-libc;
|
||||||
|
|
|
@ -18,16 +18,19 @@
|
||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with Mes. If not, see <http://www.gnu.org/licenses/>.
|
# along with Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
set -ex
|
set -x
|
||||||
|
|
||||||
GUILE=${GUILE-$MES}
|
GUILE=${GUILE-$MES}
|
||||||
DIFF=${DIFF-$(command -v diff)}
|
DIFF=${DIFF-$(command -v diff)}
|
||||||
DIFF=${DIFF-sh build-aux/diff.scm}
|
[ -z "$DIFF" ] && DIFF="sh build-aux/diff.scm"
|
||||||
|
|
||||||
t=${1-scaffold/tests/t}
|
t=${1-scaffold/tests/t}
|
||||||
#rm -f "$t".i686-unknown-linux-gnu-out
|
|
||||||
rm -f "$t".mes-out
|
rm -f "$t".mes-out
|
||||||
|
shift
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
rm -f "$t".mes-out
|
||||||
sh build-aux/cc-mes.sh "$t"
|
sh build-aux/cc-mes.sh "$t"
|
||||||
|
|
||||||
r=0
|
r=0
|
||||||
|
|
61
build.sh
61
build.sh
|
@ -18,20 +18,59 @@
|
||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with Mes. If not, see <http://www.gnu.org/licenses/>.
|
# along with Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
set -ex
|
set -x
|
||||||
|
# dash does not export foo=${foo-bar} for some values
|
||||||
|
export CC CC32 GUILE MESCC MES_SEED
|
||||||
|
export MES_ARENA MES_DEBUG
|
||||||
|
export PREFIX DATADIR MODULEDIR
|
||||||
|
export CPPFLAGS CFLAGS C32FLAGS MESCCFLAGS
|
||||||
|
|
||||||
export CC=${CC-$(type -p gcc)}
|
CC=${CC-$(command -v gcc)}
|
||||||
export CC32=${CC32-$(type -p i686-unknown-linux-gnu-gcc)}
|
CC32=${CC32-$(command -v i686-unknown-linux-gnu-gcc)}
|
||||||
export MESCC=${MESCC-$(type -p mescc)}
|
MESCC=${MESCC-$(command -v mescc)}
|
||||||
export MES_SEED=${MES_SEED-../mes-seed}
|
MES_SEED=${MES_SEED-../mes-seed}
|
||||||
export GUILE=${GUILE-$(type -p guile)}
|
GUILE=${GUILE-$(command -v guile)}
|
||||||
export MES_ARENA=${MES_ARENA-300000000}
|
MES_ARENA=${MES_ARENA-300000000}
|
||||||
export MES_DEBUG=${MES_DEBUG-2}
|
MES_DEBUG=${MES_DEBUG-2}
|
||||||
|
|
||||||
export PREFIX=${PREFIX-/usr/local}
|
PREFIX=${PREFIX-/usr/local}
|
||||||
export DATADIR=${DATADIR-$PREFIX/share/mes}
|
DATADIR=${DATADIR-$PREFIX/share/mes}
|
||||||
export MODULEDIR=${MODULEDIR-$DATADIR/module}
|
MODULEDIR=${MODULEDIR-$DATADIR/module}
|
||||||
|
set -e
|
||||||
|
|
||||||
|
CPPFLAGS=${CPPFLAGS-"
|
||||||
|
-D VERSION=\"$VERSION\"
|
||||||
|
-D MODULEDIR=\"$MODULEDIR\"
|
||||||
|
-D PREFIX=\"$PREFIX\"
|
||||||
|
-I src
|
||||||
|
-I lib
|
||||||
|
-I include
|
||||||
|
"}
|
||||||
|
CFLAGS=${CFLAGS-"
|
||||||
|
--std=gnu99
|
||||||
|
-O0
|
||||||
|
-g
|
||||||
|
"}
|
||||||
|
C32FLAGS=${C32FLAGS-"
|
||||||
|
--std=gnu99
|
||||||
|
-O0
|
||||||
|
-fno-stack-protector
|
||||||
|
-g
|
||||||
|
-m32
|
||||||
|
-nostdinc
|
||||||
|
-nostdlib
|
||||||
|
"}
|
||||||
|
MESCCLAGS=${MESCCFLAGS-"
|
||||||
|
"}
|
||||||
|
M1FLAGS=${M1FLAGS-"
|
||||||
|
--LittleEndian
|
||||||
|
--Architecture=1
|
||||||
|
"}
|
||||||
|
HEX2FLAGS=${HEX2FLAGS-"
|
||||||
|
--LittleEndian
|
||||||
|
--Architecture=1
|
||||||
|
--BaseAddress=0x1000000
|
||||||
|
"}
|
||||||
|
|
||||||
if [ -n "$GUILE" ]; then
|
if [ -n "$GUILE" ]; then
|
||||||
sh build-aux/build-guile.sh
|
sh build-aux/build-guile.sh
|
||||||
|
|
7
check.sh
7
check.sh
|
@ -18,9 +18,10 @@
|
||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with Mes. If not, see <http://www.gnu.org/licenses/>.
|
# along with Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
export GUILE=${GUILE-guile}
|
export GUILE MES MES_ARENA
|
||||||
export MES=${MES-src/mes}
|
GUILE=${GUILE-guile}
|
||||||
export MES_ARENA=${MES_ARENA-100000000}
|
MES=${MES-src/mes}
|
||||||
|
MES_ARENA=${MES_ARENA-100000000}
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
bash build-aux/check-boot.sh
|
bash build-aux/check-boot.sh
|
||||||
|
|
18
configure
vendored
18
configure
vendored
|
@ -2,7 +2,7 @@
|
||||||
# -*- scheme -*-
|
# -*- scheme -*-
|
||||||
unset LANG LC_ALL
|
unset LANG LC_ALL
|
||||||
echo -n "checking for guile..."
|
echo -n "checking for guile..."
|
||||||
GUILE=$(type -p ${GUILE-guile} 2>/dev/null|tail -n 1|sed 's,^.* ,,')
|
GUILE=$(command -v ${GUILE-guile} 2>/dev/null|tail -n 1|sed 's,^.* ,,')
|
||||||
export GUILE
|
export GUILE
|
||||||
if [ -x "$GUILE" ]; then
|
if [ -x "$GUILE" ]; then
|
||||||
echo " $GUILE"
|
echo " $GUILE"
|
||||||
|
@ -175,6 +175,11 @@ exec ${GUILE} --no-auto-compile -L $(pwd) -C $(pwd) -e 'main' -s "$0" ${1+"$@"}
|
||||||
"i686-unknown-linux-gnu-gcc")))
|
"i686-unknown-linux-gnu-gcc")))
|
||||||
(define HEX2 (or (getenv "HEX2") "hex2"))
|
(define HEX2 (or (getenv "HEX2") "hex2"))
|
||||||
(define M1 (or (getenv "M1") "M1"))
|
(define M1 (or (getenv "M1") "M1"))
|
||||||
|
(define CFLAGS (getenv "CFLAGS"))
|
||||||
|
(define C32FLAGS (getenv "C32FLAGS"))
|
||||||
|
(define HEX2FLAGS (getenv "HEX2FLAGS"))
|
||||||
|
(define M1FLAGS (getenv "M1FLAGS"))
|
||||||
|
(define MESCCFLAGS (getenv "MESCCFLAGS"))
|
||||||
|
|
||||||
(define (parse-opts args)
|
(define (parse-opts args)
|
||||||
(let* ((option-spec
|
(let* ((option-spec
|
||||||
|
@ -261,10 +266,15 @@ Usage: ./configure [OPTION]...
|
||||||
(stdout "PACKAGE:=~a\n" PACKAGE)
|
(stdout "PACKAGE:=~a\n" PACKAGE)
|
||||||
(stdout "VERSION:=~a\n" VERSION)
|
(stdout "VERSION:=~a\n" VERSION)
|
||||||
(stdout "PREFIX:=~a\n" (gulp-pipe (string-append "echo " prefix)))
|
(stdout "PREFIX:=~a\n" (gulp-pipe (string-append "echo " prefix)))
|
||||||
(stdout "SYSCONFDIR:=~a\n" sysconfdir)))
|
(stdout "SYSCONFDIR:=~a\n" sysconfdir)
|
||||||
|
(when CFLAGS (stdout "CFLAGS:=~a\n" CFLAGS))
|
||||||
|
(when C32FLAGS (stdout "C32FLAGS:=~a\n" C32FLAGS))
|
||||||
|
(when HEX2FLAGS (stdout "HEX2FLAGS:=~a\n" HEX2FLAGS))
|
||||||
|
(when M1FLAGS (stdout "M1FLAGS:=~a\n" M1FLAGS))
|
||||||
|
(when MESCCFLAGS (stdout "MESCCFLAGS:=~a\n" MESCCFLAGS))))
|
||||||
(format (current-output-port)
|
(format (current-output-port)
|
||||||
"\nRun:
|
"\nRun:
|
||||||
~a to build mes
|
~a to build mes
|
||||||
~a help for help on other targets\n"
|
~a help for help on other targets\n"
|
||||||
(if make? "make" "./make.scm")
|
(if make? "make" "./build.sh")
|
||||||
(if make? "make" "./make.scm"))))
|
(if make? "make" "./build.sh"))))
|
||||||
|
|
|
@ -2,7 +2,8 @@
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
export PREFIX=${PREFIX-/usr/local}
|
export PREFIX
|
||||||
|
PREFIX=${PREFIX-/usr/local}
|
||||||
MES_PREFIX=${MES_PREFIX-$PREFIX/share/mes}
|
MES_PREFIX=${MES_PREFIX-$PREFIX/share/mes}
|
||||||
MES_SEED=${MES_SEED-../mes-seed}
|
MES_SEED=${MES_SEED-../mes-seed}
|
||||||
TINYCC_SEED=${TINYCC_SEED-../tinycc-seed}
|
TINYCC_SEED=${TINYCC_SEED-../tinycc-seed}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
#! /bin/sh
|
#! /bin/sh
|
||||||
# -*-scheme-*-
|
# -*-scheme-*-
|
||||||
mes_p=$(type -p mes)
|
mes_p=$(command -v mes)
|
||||||
if [ '(' -z "$mes_p" -a -z "$MES" ')' -o "$MES" = "guile" -o "$MES" = "mes.guile" ]; then
|
if [ '(' -z "$mes_p" -a -z "$MES" ')' -o "$MES" = "guile" -o "$MES" = "mes.guile" ]; then
|
||||||
GODIR=${GODIR-@GODIR@}
|
GODIR=${GODIR-@GODIR@}
|
||||||
GUILEDIR=${GUILEDIR-@GUILEDIR@}
|
GUILEDIR=${GUILEDIR-@GUILEDIR@}
|
||||||
|
|
Loading…
Reference in a new issue