diff options
| author | David Kühling <dvdkhlng@gmx.de> | 2010-09-18 20:47:21 +0200 |
|---|---|---|
| committer | David Kühling <dvdkhlng@gmx.de> | 2010-09-18 20:47:21 +0200 |
| commit | 4bfce3b6e2ea095ea3d9f5d2d1018cc0a1e5ce09 (patch) | |
| tree | 58590463ada82a27eca0889312c32450358249a8 /gforth/files/gforth-wrapper.in | |
| download | qipackages-fork-4bfce3b6e2ea095ea3d9f5d2d1018cc0a1e5ce09.tar.gz | |
Major overhaul and cleanup. Support for .ubi image file installations.grafted
Only compile&install a minimum host Gforth for bootstrapping the target
Gforth, removing strange emacs-dependencies that cropped up earlier.
Image file can now be built on the nanonote using 'gforth-update-image'
command. Also, Gforth is now run through a wrapper that calls
'gforth-update-image' automatically, if necessary.
Also first attempts at supporting libcc C-interface libraries pre-compiled on
the host.
Tested to compile on amd64 and i386.
Diffstat (limited to 'gforth/files/gforth-wrapper.in')
| -rw-r--r-- | gforth/files/gforth-wrapper.in | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/gforth/files/gforth-wrapper.in b/gforth/files/gforth-wrapper.in new file mode 100644 index 0000000..3bc7d35 --- /dev/null +++ b/gforth/files/gforth-wrapper.in @@ -0,0 +1,50 @@ +#! /bin/sh +# +# Part of gforth package for OpenWrt: Wrapper to call check for and create +# Gforth image before running executable. +# +# Copyright (C) 2010 David Kuehling <dvdkhlng TA gmx TOD de> +# +# License: GPLv3+, NO WARRANTY +# +dirname=$(dirname "$0") +binary=$dirname/$(basename "$0").real + +GFORTH_LIB_DIR=/usr/lib/gforth/@PACKAGE_VERSION@ +GFORTH_FI=$GFORTH_LIB_DIR/gforth.fi + +# try to (re)generate the gforth.fi image file +do_update(){ + $dirname/gforth-update-image &> /dev/null + status=$? + [ $status = 0 ] && return 0 + +cat<<EOF + Gforth image $GFORTH_FI + is missing and regeneration failed: + + '$dirname/gforth-update-image' + aborted with exit code $status. + + Try to re-run 'gforth-update-image' manually to + see what is wrong. Also please report this + problem to <discussion@lists.qi-hardware.com> + and/or <dvdkhlng ta gmx tod de>. + + As a workaround, you can run a kernel-only Gforth + (with reduced functionality), using: + + $binary -i @kernel_fi@ +EOF + + exec false +} + +if ! [ -f "$GFORTH_FI" ]; then + do_update +fi + +# if everything is ok, we'll come here and run the actual Gforth executable +# (gforth.real, gforth-fast.real etc.) +exec "$binary" "$@" + |
