build: Resurrect bootstrap.sh.

* build-aux/connfigure-lib.sh: Split from build-lib.sh
* build-aux/build-lib.sh: Include it.
* build-aux/bootstrap.sh.in: New file.
* configure.sh: Substitute it.
This commit is contained in:
Jan Nieuwenhuizen 2019-07-07 12:17:03 +02:00
parent 6541ec8c09
commit 9ac6528348
No known key found for this signature in database
GPG key ID: F3C1A0D9C1D65273
11 changed files with 423 additions and 293 deletions

1
.gitignore vendored
View file

@ -141,6 +141,7 @@
/config.status /config.status
/pre-inst-env /pre-inst-env
/bootstrap.sh
/build.sh /build.sh
/check.sh /check.sh
/install.sh /install.sh

83
build-aux/bootstrap.sh.in Normal file
View file

@ -0,0 +1,83 @@
#! @SHELL@
# GNU Mes --- Maxwell Equations of Software
# Copyright © 2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
#
# This file is part of GNU Mes.
#
# GNU 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.
#
# GNU 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 GNU Mes. If not, see <http://www.gnu.org/licenses/>.
LANG=
MES_ARENA=${MES_ARENA-100000000}
MES_MAX_ARENA=${MES_MAX_ARENA-100000000}
MES_STACK=${MES_STACK-500000}
. build-aux/configure-lib.sh
CPPFLAGS="-D HAVE_CONFIG_H=1 -I include"
CFLAGS=""
mkdir -p mescc-lib
cp config.sh mescc-lib/config.sh
cd mescc-lib
srcdest=../
CPPFLAGS="-D HAVE_CONFIG_H=1 -I ${srcdest}include -I ${srcdest}include/$mes_kernel/$mes_cpu"
mkdir $mes_cpu-mes
$CC -c $CPPFLAGS $CFLAGS ${srcdest}lib/$mes_kernel/$mes_cpu-mes-$compiler/crt1.c
cp crt1.o $mes_cpu-mes
cp crt1.s $mes_cpu-mes
objects=
for c in $libc_mini_SOURCES; do
echo "CC $c"
$CC -c $CPPFLAGS $CFLAGS ${srcdest}$c
o=$(basename $c .c).o
objects="$objects $o"
done
echo "AR $mes_cpu-mes/libc-mini.a"
$AR crD $mes_cpu-mes/libc-mini.a $objects
objects=
for c in $libc_SOURCES; do
echo "CC $c"
$CC -c $CPPFLAGS $CFLAGS ${srcdest}$c
o=$(basename $c .c).o
objects="$objects $o"
done
echo "AR $mes_cpu-mes/libc.a"
$AR crD $mes_cpu-mes/libc.a $objects
objects=
for c in $libc_tcc_SOURCES; do
echo "CC $c"
$CC -c $CPPFLAGS $CFLAGS ${srcdest}$c
o=$(basename $c .c).o
objects="$objects $o"
done
echo "AR $mes_cpu-mes/libc+tcc.a"
$AR crD $mes_cpu-mes/libc+tcc.a $objects
cd ..
srcdest=
CPPFLAGS="-D HAVE_CONFIG_H=1 -I ${srcdest}include -I ${srcdest}include/$mes_kernel/$mes_cpu"
objects=
for c in $mes_SOURCES; do
echo "CC $c"
$CC -c $CPPFLAGS $CFLAGS ${srcdest}$c
o=$(basename $c .c).o
objects="$objects $o"
done
echo "CCLD src/mes"
$CC -nostdlib -o src/mes -L mescc-lib mescc-lib/crt1.o $objects -lc

View file

@ -18,294 +18,13 @@
# 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 GNU Mes. If not, see <http://www.gnu.org/licenses/>. # along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
set -e srcdest=${srcdest-}
set -u . ${srcdest}build-aux/configure-lib.sh
V=${V-1}
if [ "$V" = 2 ]; then
set -x
fi
. ./config.sh
. ${srcdest}build-aux/trace.sh . ${srcdest}build-aux/trace.sh
. ${srcdest}build-aux/cc.sh . ${srcdest}build-aux/cc.sh
trap 'test -f .log && cat .log' EXIT trap 'test -f .log && cat .log' EXIT
srcdest=${srcdest-}
libc_mini_SOURCES="
lib/mes/eputs.c
lib/mes/oputs.c
"
if test $mes_libc = mes; then
libc_mini_SOURCES="$libc_mini_SOURCES
lib/posix/write.c
lib/string/strlen.c
lib/stdlib/puts.c
lib/stdlib/exit.c
lib/$mes_kernel/$mes_cpu-mes-$compiler/mini.c
"
fi
libmes_SOURCES="
$libc_mini_SOURCES
lib/ctype/isnumber.c
lib/mes/abtol.c
lib/mes/itoa.c
lib/mes/ltoa.c
lib/mes/ltoab.c
lib/mes/ultoa.c
lib/mes/utoa.c
lib/mes/eputc.c
lib/mes/fdgetc.c
lib/mes/fdputc.c
lib/mes/fdputs.c
lib/mes/fdungetc.c
lib/mes/mes_open.c
lib/mes/ntoab.c
lib/mes/oputc.c
"
if test $mes_libc = mes; then
libmes_SOURCES="$libmes_SOURCES
lib/stdlib/atoi.c
lib/ctype/isdigit.c
lib/ctype/isspace.c
lib/ctype/isxdigit.c
"
else
libmes_SOURCES="$libmes_SOURCES
"
fi
libc_SOURCES="
$libmes_SOURCES
lib/mes/__assert_fail.c
lib/mes/__mes_debug.c
lib/posix/execv.c
lib/posix/getcwd.c
lib/posix/getenv.c
lib/posix/isatty.c
lib/posix/read.c
lib/posix/open.c
lib/posix/setenv.c
lib/posix/wait.c
lib/stdio/fgetc.c
lib/stdio/fputc.c
lib/stdio/fputs.c
lib/stdio/getc.c
lib/stdio/getchar.c
lib/stdio/putc.c
lib/stdio/putchar.c
lib/stdio/ungetc.c
lib/stdlib/free.c
lib/stdlib/malloc.c
lib/stdlib/realloc.c
lib/string/memchr.c
lib/string/memcmp.c
lib/string/memcpy.c
lib/string/memset.c
lib/string/strcmp.c
lib/string/strcpy.c
lib/string/strncmp.c
"
if test $mes_kernel = linux; then
libc_SOURCES="$libc_SOURCES
lib/linux/access.c
lib/linux/brk.c
lib/linux/chmod.c
lib/linux/clock_gettime.c
lib/linux/dup.c
lib/linux/dup2.c
lib/linux/execve.c
lib/linux/fork.c
lib/linux/fsync.c
lib/linux/_getcwd.c
lib/linux/gettimeofday.c
lib/linux/ioctl.c
lib/linux/_open3.c
lib/linux/_read.c
lib/linux/time.c
lib/linux/unlink.c
lib/linux/waitpid.c
lib/linux/$mes_cpu-mes-$compiler/syscall.c
"
fi
libtcc1_SOURCES="
lib/libtcc1.c
"
libc_tcc_SOURCES="
$libc_SOURCES
lib/ctype/islower.c
lib/ctype/isupper.c
lib/ctype/tolower.c
lib/ctype/toupper.c
lib/mes/search-path.c
lib/posix/execvp.c
lib/stdio/fclose.c
lib/stdio/fdopen.c
lib/stdio/ferror.c
lib/stdio/fflush.c
lib/stdio/fopen.c
lib/stdio/fprintf.c
lib/stdio/fread.c
lib/stdio/fseek.c
lib/stdio/ftell.c
lib/stdio/fwrite.c
lib/stdio/printf.c
lib/stdio/remove.c
lib/stdio/snprintf.c
lib/stdio/sprintf.c
lib/stdio/sscanf.c
lib/stdio/vfprintf.c
lib/stdio/vprintf.c
lib/stdio/vsnprintf.c
lib/stdio/vsprintf.c
lib/stdio/vsscanf.c
lib/stdlib/calloc.c
lib/stdlib/qsort.c
lib/stdlib/strtof.c
lib/stdlib/strtol.c
lib/stdlib/strtold.c
lib/stdlib/strtoll.c
lib/stdlib/strtoul.c
lib/stdlib/strtoull.c
lib/string/memmem.c
lib/string/memmove.c
lib/string/strcat.c
lib/string/strchr.c
lib/string/strlwr.c
lib/string/strncpy.c
lib/string/strrchr.c
lib/string/strstr.c
lib/string/strupr.c
lib/stub/sigaction.c
lib/stub/ldexp.c
lib/stub/mprotect.c
lib/stub/localtime.c
lib/stub/sigemptyset.c
lib/stub/strtod.c
lib/$mes_cpu-mes-$compiler/setjmp.c
"
if test $mes_kernel = linux; then
libc_tcc_SOURCES="$libc_tcc_SOURCES
lib/linux/close.c
lib/linux/lseek.c
lib/linux/rmdir.c
lib/linux/stat.c
"
fi
libc_gnu_SOURCES="
$libc_tcc_SOURCES
lib/ctype/isalnum.c
lib/ctype/isalpha.c
lib/ctype/isascii.c
lib/ctype/iscntrl.c
lib/ctype/isprint.c
lib/ctype/ispunct.c
lib/dirent/__getdirentries.c
lib/dirent/closedir.c
lib/dirent/opendir.c
lib/dirent/readdir.c
lib/math/fabs.c
lib/mes/fdgets.c
lib/posix/alarm.c
lib/posix/execl.c
lib/posix/mktemp.c
lib/posix/raise.c
lib/posix/sbrk.c
lib/posix/sleep.c
lib/posix/unsetenv.c
lib/stdio/clearerr.c
lib/stdio/feof.c
lib/stdio/fgets.c
lib/stdio/fileno.c
lib/stdio/freopen.c
lib/stdio/perror.c
lib/stdlib/__exit.c
lib/stdlib/abort.c
lib/stdlib/abs.c
lib/stdlib/alloca.c
lib/stdlib/atexit.c
lib/stdlib/atol.c
lib/stdlib/mbstowcs.c
lib/string/bcmp.c
lib/string/bcopy.c
lib/string/bzero.c
lib/string/index.c
lib/string/rindex.c
lib/string/strcspn.c
lib/string/strdup.c
lib/string/strerror.c
lib/string/strncat.c
lib/string/strpbrk.c
lib/string/strspn.c
lib/stub/__cleanup.c
lib/stub/bsearch.c
lib/stub/chown.c
lib/stub/ctime.c
lib/stub/fpurge.c
lib/stub/freadahead.c
lib/stub/frexp.c
lib/stub/getlogin.c
lib/stub/getpwnam.c
lib/stub/getpwuid.c
lib/stub/gmtime.c
lib/stub/pclose.c
lib/stub/popen.c
lib/stub/rand.c
lib/stub/setbuf.c
lib/stub/setlocale.c
lib/stub/setvbuf.c
lib/stub/sigaddset.c
lib/stub/sigblock.c
lib/stub/sigdelset.c
lib/stub/sigsetmask.c
lib/stub/strftime.c
lib/stub/sys_siglist.c
lib/stub/system.c
lib/stub/times.c
lib/stub/ttyname.c
lib/stub/umask.c
lib/stub/utime.c
"
if test $mes_kernel = linux; then
libc_gnu_SOURCES="$libc_gnu_SOURCES
lib/linux/chdir.c
lib/linux/fcntl.c
lib/linux/fstat.c
lib/linux/getdents.c
lib/linux/getegid.c
lib/linux/geteuid.c
lib/linux/getgid.c
lib/linux/getpid.c
lib/linux/getppid.c
lib/linux/getrusage.c
lib/linux/getuid.c
lib/linux/kill.c
lib/linux/link.c
lib/linux/lstat.c
lib/linux/mkdir.c
lib/linux/nanosleep.c
lib/linux/pipe.c
lib/linux/rename.c
lib/linux/setgid.c
lib/linux/settimer.c
lib/linux/setuid.c
lib/linux/signal.c
lib/linux/sigprogmask.c
"
fi
mkdir -p $mes_cpu-mes mkdir -p $mes_cpu-mes
compile lib/$mes_kernel/$mes_cpu-mes-$compiler/crt1.c compile lib/$mes_kernel/$mes_cpu-mes-$compiler/crt1.c
cp crt1.o $mes_cpu-mes cp crt1.o $mes_cpu-mes

View file

@ -190,6 +190,10 @@ lib/tests/scaffold/82-define.c
lib/tests/scaffold/83-heterogenoous-init.c lib/tests/scaffold/83-heterogenoous-init.c
lib/tests/scaffold/84-struct-field-list.c lib/tests/scaffold/84-struct-field-list.c
lib/tests/scaffold/85-sizeof.c lib/tests/scaffold/85-sizeof.c
"
if test -z "$bootstrap"; then
TESTS="$TESTS
lib/tests/dirent/90-readdir.c lib/tests/dirent/90-readdir.c
lib/tests/io/90-stat.c lib/tests/io/90-stat.c
lib/tests/posix/90-unsetenv.c lib/tests/posix/90-unsetenv.c
@ -211,6 +215,7 @@ lib/tests/scaffold/a0-math-divide-signed-negative.c
lib/tests/scaffold/a1-global-no-align.c lib/tests/scaffold/a1-global-no-align.c
lib/tests/scaffold/a1-global-no-clobber.c lib/tests/scaffold/a1-global-no-clobber.c
" "
fi
XFAIL_TESTS=" XFAIL_TESTS="
lib/tests/stdio/90-sprintf.c lib/tests/stdio/90-sprintf.c

View file

@ -53,6 +53,7 @@ arch:=@arch@
build:=@build@ build:=@build@
host:=@host@ host:=@host@
bootstrap:=
compiler:=@compiler@ compiler:=@compiler@
courageous:=@courageous@ courageous:=@courageous@
mes_system:=@mes_system@ mes_system:=@mes_system@

View file

@ -53,6 +53,7 @@ arch="@arch@"
build="@build@" build="@build@"
host="@host@" host="@host@"
bootstrap=${bootstrap-}
compiler=${compiler-@compiler@} compiler=${compiler-@compiler@}
courageous=${courageous-@courageous@} courageous=${courageous-@courageous@}
mes_system=@mes_system@ mes_system=@mes_system@

315
build-aux/configure-lib.sh Normal file
View file

@ -0,0 +1,315 @@
#! /bin/sh
# GNU Mes --- Maxwell Equations of Software
# Copyright © 2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
#
# This file is part of GNU Mes.
#
# GNU 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.
#
# GNU 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 GNU Mes. If not, see <http://www.gnu.org/licenses/>.
set -e
set -u
V=${V-1}
if [ "$V" = 2 ]; then
set -x
fi
. ./config.sh
libc_mini_SOURCES="
lib/mes/eputs.c
lib/mes/oputs.c
"
if test $mes_libc = mes; then
libc_mini_SOURCES="$libc_mini_SOURCES
lib/posix/write.c
lib/string/strlen.c
lib/stdlib/puts.c
lib/stdlib/exit.c
lib/$mes_kernel/$mes_cpu-mes-$compiler/mini.c
"
fi
libmes_SOURCES="
$libc_mini_SOURCES
lib/ctype/isnumber.c
lib/mes/abtol.c
lib/mes/itoa.c
lib/mes/ltoa.c
lib/mes/ltoab.c
lib/mes/ultoa.c
lib/mes/utoa.c
lib/mes/eputc.c
lib/mes/fdgetc.c
lib/mes/fdputc.c
lib/mes/fdputs.c
lib/mes/fdungetc.c
lib/mes/mes_open.c
lib/mes/ntoab.c
lib/mes/oputc.c
"
if test $mes_libc = mes; then
libmes_SOURCES="$libmes_SOURCES
lib/stdlib/atoi.c
lib/ctype/isdigit.c
lib/ctype/isspace.c
lib/ctype/isxdigit.c
"
else
libmes_SOURCES="$libmes_SOURCES
"
fi
libc_SOURCES="
$libmes_SOURCES
lib/mes/__assert_fail.c
lib/mes/__mes_debug.c
lib/posix/execv.c
lib/posix/getcwd.c
lib/posix/getenv.c
lib/posix/isatty.c
lib/posix/open.c
lib/posix/read.c
lib/posix/setenv.c
lib/posix/wait.c
lib/stdio/fgetc.c
lib/stdio/fputc.c
lib/stdio/fputs.c
lib/stdio/getc.c
lib/stdio/getchar.c
lib/stdio/putc.c
lib/stdio/putchar.c
lib/stdio/ungetc.c
lib/stdlib/free.c
lib/stdlib/malloc.c
lib/stdlib/realloc.c
lib/string/memchr.c
lib/string/memcmp.c
lib/string/memcpy.c
lib/string/memset.c
lib/string/strcmp.c
lib/string/strcpy.c
lib/string/strncmp.c
"
if test $mes_kernel = linux; then
libc_SOURCES="$libc_SOURCES
lib/linux/access.c
lib/linux/brk.c
lib/linux/chmod.c
lib/linux/clock_gettime.c
lib/linux/dup.c
lib/linux/dup2.c
lib/linux/execve.c
lib/linux/fork.c
lib/linux/fsync.c
lib/linux/_getcwd.c
lib/linux/gettimeofday.c
lib/linux/ioctl.c
lib/linux/_open3.c
lib/linux/_read.c
lib/linux/time.c
lib/linux/unlink.c
lib/linux/waitpid.c
lib/linux/$mes_cpu-mes-$compiler/syscall.c
"
fi
libtcc1_SOURCES="
lib/libtcc1.c
"
libc_tcc_SOURCES="
$libc_SOURCES
lib/ctype/islower.c
lib/ctype/isupper.c
lib/ctype/tolower.c
lib/ctype/toupper.c
lib/mes/search-path.c
lib/posix/execvp.c
lib/stdio/fclose.c
lib/stdio/fdopen.c
lib/stdio/ferror.c
lib/stdio/fflush.c
lib/stdio/fopen.c
lib/stdio/fprintf.c
lib/stdio/fread.c
lib/stdio/fseek.c
lib/stdio/ftell.c
lib/stdio/fwrite.c
lib/stdio/printf.c
lib/stdio/remove.c
lib/stdio/snprintf.c
lib/stdio/sprintf.c
lib/stdio/sscanf.c
lib/stdio/vfprintf.c
lib/stdio/vprintf.c
lib/stdio/vsnprintf.c
lib/stdio/vsprintf.c
lib/stdio/vsscanf.c
lib/stdlib/calloc.c
lib/stdlib/qsort.c
lib/stdlib/strtof.c
lib/stdlib/strtol.c
lib/stdlib/strtold.c
lib/stdlib/strtoll.c
lib/stdlib/strtoul.c
lib/stdlib/strtoull.c
lib/string/memmem.c
lib/string/memmove.c
lib/string/strcat.c
lib/string/strchr.c
lib/string/strlwr.c
lib/string/strncpy.c
lib/string/strrchr.c
lib/string/strstr.c
lib/string/strupr.c
lib/stub/sigaction.c
lib/stub/ldexp.c
lib/stub/mprotect.c
lib/stub/localtime.c
lib/stub/sigemptyset.c
lib/stub/strtod.c
lib/$mes_cpu-mes-$compiler/setjmp.c
"
if test $mes_kernel = linux; then
libc_tcc_SOURCES="$libc_tcc_SOURCES
lib/linux/close.c
lib/linux/lseek.c
lib/linux/rmdir.c
lib/linux/stat.c
"
fi
libc_gnu_SOURCES="
$libc_tcc_SOURCES
lib/ctype/isalnum.c
lib/ctype/isalpha.c
lib/ctype/isascii.c
lib/ctype/iscntrl.c
lib/ctype/isprint.c
lib/ctype/ispunct.c
lib/dirent/__getdirentries.c
lib/dirent/closedir.c
lib/dirent/opendir.c
lib/dirent/readdir.c
lib/math/fabs.c
lib/mes/fdgets.c
lib/posix/alarm.c
lib/posix/execl.c
lib/posix/mktemp.c
lib/posix/raise.c
lib/posix/sbrk.c
lib/posix/sleep.c
lib/posix/unsetenv.c
lib/stdio/clearerr.c
lib/stdio/feof.c
lib/stdio/fgets.c
lib/stdio/fileno.c
lib/stdio/freopen.c
lib/stdio/perror.c
lib/stdlib/__exit.c
lib/stdlib/abort.c
lib/stdlib/abs.c
lib/stdlib/alloca.c
lib/stdlib/atexit.c
lib/stdlib/atol.c
lib/stdlib/mbstowcs.c
lib/string/bcmp.c
lib/string/bcopy.c
lib/string/bzero.c
lib/string/index.c
lib/string/rindex.c
lib/string/strcspn.c
lib/string/strdup.c
lib/string/strerror.c
lib/string/strncat.c
lib/string/strpbrk.c
lib/string/strspn.c
lib/stub/__cleanup.c
lib/stub/bsearch.c
lib/stub/chown.c
lib/stub/ctime.c
lib/stub/fpurge.c
lib/stub/freadahead.c
lib/stub/frexp.c
lib/stub/getlogin.c
lib/stub/getpwnam.c
lib/stub/getpwuid.c
lib/stub/gmtime.c
lib/stub/pclose.c
lib/stub/popen.c
lib/stub/rand.c
lib/stub/setbuf.c
lib/stub/setlocale.c
lib/stub/setvbuf.c
lib/stub/sigaddset.c
lib/stub/sigblock.c
lib/stub/sigdelset.c
lib/stub/sigsetmask.c
lib/stub/strftime.c
lib/stub/sys_siglist.c
lib/stub/system.c
lib/stub/times.c
lib/stub/ttyname.c
lib/stub/umask.c
lib/stub/utime.c
"
if test $mes_kernel = linux; then
libc_gnu_SOURCES="$libc_gnu_SOURCES
lib/linux/chdir.c
lib/linux/fcntl.c
lib/linux/fstat.c
lib/linux/getdents.c
lib/linux/getegid.c
lib/linux/geteuid.c
lib/linux/getgid.c
lib/linux/getpid.c
lib/linux/getppid.c
lib/linux/getrusage.c
lib/linux/getuid.c
lib/linux/kill.c
lib/linux/link.c
lib/linux/lstat.c
lib/linux/mkdir.c
lib/linux/nanosleep.c
lib/linux/pipe.c
lib/linux/rename.c
lib/linux/setgid.c
lib/linux/settimer.c
lib/linux/setuid.c
lib/linux/signal.c
lib/linux/sigprogmask.c
"
fi
mes_SOURCES="
src/gc.c
src/hash.c
src/lib.c
src/math.c
src/mes.c
src/module.c
src/posix.c
src/reader.c
src/string.c
src/struct.c
src/vector.c
"

View file

@ -42,6 +42,7 @@ export mandir
export moduledir export moduledir
export sysconfdir export sysconfdir
export bootstrap
export compiler export compiler
export courageous export courageous
export mes_system export mes_system

View file

@ -49,7 +49,6 @@ if test "$p" != "$cmdline"; then
p=${p% *} p=${p% *}
p=${p% -*} p=${p% -*}
prefix=${p-/usr/local} prefix=${p-/usr/local}
else else
prefix=${prefix-/usr/local} prefix=${prefix-/usr/local}
fi fi
@ -72,8 +71,7 @@ if [ "$p" != "$cmdline" ]; then
p=${p% *} p=${p% *}
p=${p% -*} p=${p% -*}
host=${p-$build} host=${p-$build}
elif test -n "$build"; then
else
host=${host-$build} host=${host-$build}
fi fi
@ -130,13 +128,13 @@ docdir=$(eval echo ${docdir-$datadir/doc/mes-$VERSION})
infodir=$(eval echo ${infodir-$datadir/info}) infodir=$(eval echo ${infodir-$datadir/info})
includedir=$(eval echo ${libdir-$prefix/include}) includedir=$(eval echo ${libdir-$prefix/include})
libdir=$(eval echo ${libdir-$prefix/lib}) libdir=$(eval echo ${libdir-$prefix/lib})
pkgdatadir=$(eval echo ${pkgdatadir-$datadir/mes})
mandir=$(eval echo ${mandir-$datadir/man}) mandir=$(eval echo ${mandir-$datadir/man})
moduledir=$(eval echo ${moduledir-$datadir/mes/module})
moduledir_="$moduledir/"
guile_site_dir=$(eval echo ${guile_site_dir-$prefix/share/guile/site/$GUILE_EFFECTIVE_VERSION}) guile_site_dir=$(eval echo ${guile_site_dir-$prefix/share/guile/site/$GUILE_EFFECTIVE_VERSION})
guile_site_ccache_dir=$(eval echo ${guile_site_ccache_dir-$prefix/lib/guile/$GUILE_EFFECTIVE_VERSION/site-ccache}) guile_site_ccache_dir=$(eval echo ${guile_site_ccache_dir-$prefix/lib/guile/$GUILE_EFFECTIVE_VERSION/site-ccache})
subst () { subst () {
echo "creating $2"
sed \ sed \
-e s,"@PACKAGE@,$PACKAGE,"\ -e s,"@PACKAGE@,$PACKAGE,"\
-e s,"@PACKAGE_NAME@,$PACKAGE_NAME,"\ -e s,"@PACKAGE_NAME@,$PACKAGE_NAME,"\
@ -167,7 +165,7 @@ subst () {
-e s,"@includedir@,$includedir,"\ -e s,"@includedir@,$includedir,"\
-e s,"@libdir@,$libdir,"\ -e s,"@libdir@,$libdir,"\
-e s,"@mandir@,$mandir,"\ -e s,"@mandir@,$mandir,"\
-e s,"@moduledir@,$moduledir,"\ -e s,"@pkgdatadir@,$pkgdatadir,"\
-e s,"@sysconfdir@,$sysconfdir,"\ -e s,"@sysconfdir@,$sysconfdir,"\
-e s,"@GUILE_EFFECTIVE_VERSION@,$GUILE_EFFECTIVE_VERSION,"\ -e s,"@GUILE_EFFECTIVE_VERSION@,$GUILE_EFFECTIVE_VERSION,"\
-e s,"@V@,$V,"\ -e s,"@V@,$V,"\
@ -189,7 +187,6 @@ subst () {
-e s,"@MES_SEED@,$MES_SEED,"\ -e s,"@MES_SEED@,$MES_SEED,"\
-e s,"@MES_SEED@,$MES_SEED,"\ -e s,"@MES_SEED@,$MES_SEED,"\
-e s,"@SHELL@,$SHELL,"\ -e s,"@SHELL@,$SHELL,"\
-e s,"mes/module/,$moduledir/,"\
$1 > $2 $1 > $2
} }
@ -209,6 +206,9 @@ if test "$mes_cpu" = armv4\
|| test "$arch" = armv7l; then || test "$arch" = armv7l; then
mes_cpu=arm mes_cpu=arm
fi fi
if test "$mes_cpu" = amd64; then
mes_cpu=x86_64
fi
case "$host" in case "$host" in
*linux-gnu|*linux) *linux-gnu|*linux)
@ -238,6 +238,8 @@ mes_system=$mes_cpu-$mes_kernel-mes
subst ${srcdest}build-aux/GNUmakefile.in GNUmakefile subst ${srcdest}build-aux/GNUmakefile.in GNUmakefile
subst ${srcdest}build-aux/config.sh.in config.sh subst ${srcdest}build-aux/config.sh.in config.sh
subst ${srcdest}build-aux/bootstrap.sh.in bootstrap.sh
chmod +x bootstrap.sh
subst ${srcdest}build-aux/build.sh.in build.sh subst ${srcdest}build-aux/build.sh.in build.sh
chmod +x build.sh chmod +x build.sh
subst ${srcdest}build-aux/check.sh.in check.sh subst ${srcdest}build-aux/check.sh.in check.sh
@ -256,6 +258,7 @@ subst ${srcdest}build-aux/uninstall.sh.in uninstall.sh
chmod +x uninstall.sh chmod +x uninstall.sh
mkdir -p include/mes mkdir -p include/mes
rm -f include/mes/config.h
if test $mes_libc = system; then if test $mes_libc = system; then
cat >> include/mes/config.h <<EOF cat >> include/mes/config.h <<EOF
#define SYSTEM_LIBC 1 #define SYSTEM_LIBC 1
@ -266,9 +269,8 @@ else
EOF EOF
fi fi
cat >> include/mes/config.h <<EOF cat >> include/mes/config.h <<EOF
#define VERSION '"'$VERSION'"' #define VERSION "$VERSION"
#define pkgdatadir "'"$pkgdatadir'"' #define pkgdatadir "$pkgdatadir"
EOF EOF
cat <<EOF cat <<EOF

View file

@ -18,6 +18,7 @@
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>. * along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
*/ */
#include <mes/lib.h>
#include <limits.h> #include <limits.h>
#include <sys/types.h> #include <sys/types.h>

View file

@ -32,5 +32,6 @@ for o in "$@"; do
((i++)) ((i++))
M1_objects[$i]=$(dirname "$o")/$(basename "$o" .o).s M1_objects[$i]=$(dirname "$o")/$(basename "$o" .o).s
done done
mkdir -p $(dirname "$archive")
cat "${M1_objects[@]}" > "$M1_archive" cat "${M1_objects[@]}" > "$M1_archive"
cat "$@" > "$archive" cat "$@" > "$archive"