mirror of
https://github.com/fosslinux/live-bootstrap.git
synced 2026-03-04 10:25:25 +01:00
Merge pull request #285 from fosslinux/multiarch
Make mes build script more multiarch friendly.
This commit is contained in:
commit
37f0832e2a
1 changed files with 53 additions and 44 deletions
|
|
@ -14,6 +14,15 @@ MES_STACK=6000000
|
|||
MES=${bindir}/mes-m2
|
||||
libdir=${MES_PREFIX}/lib
|
||||
|
||||
if match ${ARCH} x86; then
|
||||
MES_ARCH=x86
|
||||
ARCH_BITS=32
|
||||
fi
|
||||
if match ${ARCH} amd64; then
|
||||
MES_ARCH=x86_64
|
||||
ARCH_BITS=64
|
||||
fi
|
||||
|
||||
# Check tarball checksums
|
||||
checksum-transcriber sources
|
||||
sha256sum -c sources.SHA256SUM
|
||||
|
|
@ -37,8 +46,8 @@ cp ../files/config.h ${MES_PREFIX}/include/mes
|
|||
|
||||
cd ${MES_PREFIX}
|
||||
mkdir include/arch
|
||||
cp include/linux/x86/syscall.h include/arch/syscall.h
|
||||
cp include/linux/x86/kernel-stat.h include/arch/kernel-stat.h
|
||||
cp include/linux/${MES_ARCH}/syscall.h include/arch/syscall.h
|
||||
cp include/linux/${MES_ARCH}/kernel-stat.h include/arch/kernel-stat.h
|
||||
|
||||
# Remove pregenerated files
|
||||
rm mes/module/mes/psyntax.pp mes/module/mes/psyntax.pp.header
|
||||
|
|
@ -48,9 +57,9 @@ cp mes/module/srfi/srfi-9-struct.mes mes/module/srfi/srfi-9.mes
|
|||
cp mes/module/srfi/srfi-9/gnu-struct.mes mes/module/srfi/srfi-9/gnu.mes
|
||||
|
||||
# Fixes to support newer M2-Planet
|
||||
catm x86_defs.M1 /M2libc/x86/x86_defs.M1 lib/m2/x86/x86_defs.M1
|
||||
cp x86_defs.M1 lib/m2/x86/x86_defs.M1
|
||||
rm x86_defs.M1
|
||||
catm ${MES_ARCH}_defs.M1 /M2libc/${MES_ARCH}/${MES_ARCH}_defs.M1 lib/m2/${MES_ARCH}/${MES_ARCH}_defs.M1
|
||||
cp ${MES_ARCH}_defs.M1 lib/m2/${MES_ARCH}/${MES_ARCH}_defs.M1
|
||||
rm ${MES_ARCH}_defs.M1
|
||||
|
||||
# Build mes-m2
|
||||
kaem --verbose --strict --file kaem.run
|
||||
|
|
@ -71,28 +80,28 @@ chmod 755 ${mescc_scm}
|
|||
|
||||
# Recompile Mes and Mes C library using mes-m2 bootstrapped Mes
|
||||
|
||||
alias mescc="${MES} -e main ${bindir}/mescc.scm -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -c"
|
||||
alias mescc="${MES} -e main ${bindir}/mescc.scm -D HAVE_CONFIG_H=1 -I include -I include/linux/${MES_ARCH} -c"
|
||||
|
||||
# Start with crt1.o
|
||||
mescc lib/linux/x86-mes-mescc/crt1.c
|
||||
mescc lib/linux/${MES_ARCH}-mes-mescc/crt1.c
|
||||
|
||||
# Now for libc-mini.a
|
||||
mescc lib/mes/eputs.c
|
||||
mescc lib/mes/oputs.c
|
||||
mescc lib/mes/globals.c
|
||||
mescc lib/stdlib/exit.c
|
||||
mescc lib/linux/x86-mes-mescc/_exit.c
|
||||
mescc lib/linux/x86-mes-mescc/_write.c
|
||||
mescc lib/linux/${MES_ARCH}-mes-mescc/_exit.c
|
||||
mescc lib/linux/${MES_ARCH}-mes-mescc/_write.c
|
||||
mescc lib/stdlib/puts.c
|
||||
mescc lib/string/strlen.c
|
||||
mescc lib/mes/mini-write.c
|
||||
catm ${libdir}/x86-mes/libc-mini.a eputs.o oputs.o globals.o exit.o _exit.o _write.o puts.o strlen.o mini-write.o
|
||||
catm ${libdir}/x86-mes/libc-mini.s eputs.s oputs.s globals.s exit.s _exit.s _write.s puts.s strlen.s mini-write.s
|
||||
catm ${libdir}/${MES_ARCH}-mes/libc-mini.a eputs.o oputs.o globals.o exit.o _exit.o _write.o puts.o strlen.o mini-write.o
|
||||
catm ${libdir}/${MES_ARCH}-mes/libc-mini.s eputs.s oputs.s globals.s exit.s _exit.s _write.s puts.s strlen.s mini-write.s
|
||||
|
||||
# libmescc.a
|
||||
mescc lib/linux/x86-mes-mescc/syscall-internal.c
|
||||
catm ${libdir}/x86-mes/libmescc.a globals.o syscall-internal.o
|
||||
catm ${libdir}/x86-mes/libmescc.s globals.s syscall-internal.s
|
||||
mescc lib/linux/${MES_ARCH}-mes-mescc/syscall-internal.c
|
||||
catm ${libdir}/${MES_ARCH}-mes/libmescc.a globals.o syscall-internal.o
|
||||
catm ${libdir}/${MES_ARCH}-mes/libmescc.s globals.s syscall-internal.s
|
||||
|
||||
# libc.a
|
||||
mescc lib/ctype/isnumber.c
|
||||
|
|
@ -166,11 +175,11 @@ mescc lib/linux/_read.c
|
|||
mescc lib/linux/time.c
|
||||
mescc lib/linux/unlink.c
|
||||
mescc lib/linux/waitpid.c
|
||||
mescc lib/linux/x86-mes-mescc/syscall.c
|
||||
mescc lib/linux/${MES_ARCH}-mes-mescc/syscall.c
|
||||
mescc lib/linux/getpid.c
|
||||
mescc lib/linux/kill.c
|
||||
catm ${libdir}/x86-mes/libc.a eputs.o oputs.o globals.o exit.o _exit.o _write.o puts.o strlen.o isnumber.o abtol.o cast.o eputc.o fdgetc.o fdputc.o fdputs.o fdungetc.o itoa.o ltoa.o ltoab.o mes_open.o ntoab.o oputc.o ultoa.o utoa.o isdigit.o isspace.o isxdigit.o assert_msg.o write.o atoi.o lseek.o __assert_fail.o __buffered_read.o __mes_debug.o execv.o getcwd.o getenv.o isatty.o open.o buffered-read.o setenv.o wait.o fgetc.o fputc.o fputs.o getc.o getchar.o putc.o putchar.o ungetc.o free.o malloc.o realloc.o memchr.o memcmp.o memcpy.o memmove.o memset.o strcmp.o strcpy.o strncmp.o raise.o access.o brk.o chmod.o clock_gettime.o dup.o dup2.o execve.o fork.o fsync.o _getcwd.o gettimeofday.o ioctl3.o _open3.o _read.o time.o unlink.o waitpid.o syscall.o getpid.o kill.o
|
||||
catm ${libdir}/x86-mes/libc.s eputs.s oputs.s globals.s exit.s _exit.s _write.s puts.s strlen.s isnumber.s abtol.s cast.s eputc.s fdgetc.s fdputc.s fdputs.s fdungetc.s itoa.s ltoa.s ltoab.s mes_open.s ntoab.s oputc.s ultoa.s utoa.s isdigit.s isspace.s isxdigit.s assert_msg.s write.s atoi.s lseek.s __assert_fail.s __buffered_read.s __mes_debug.s execv.s getcwd.s getenv.s isatty.s open.s buffered-read.s setenv.s wait.s fgetc.s fputc.s fputs.s getc.s getchar.s putc.s putchar.s ungetc.s free.s malloc.s realloc.s memchr.s memcmp.s memcpy.s memmove.s memset.s strcmp.s strcpy.s strncmp.s raise.s access.s brk.s chmod.s clock_gettime.s dup.s dup2.s execve.s fork.s fsync.s _getcwd.s gettimeofday.s ioctl3.s _open3.s _read.s time.s unlink.s waitpid.s syscall.s getpid.s kill.s
|
||||
catm ${libdir}/${MES_ARCH}-mes/libc.a eputs.o oputs.o globals.o exit.o _exit.o _write.o puts.o strlen.o isnumber.o abtol.o cast.o eputc.o fdgetc.o fdputc.o fdputs.o fdungetc.o itoa.o ltoa.o ltoab.o mes_open.o ntoab.o oputc.o ultoa.o utoa.o isdigit.o isspace.o isxdigit.o assert_msg.o write.o atoi.o lseek.o __assert_fail.o __buffered_read.o __mes_debug.o execv.o getcwd.o getenv.o isatty.o open.o buffered-read.o setenv.o wait.o fgetc.o fputc.o fputs.o getc.o getchar.o putc.o putchar.o ungetc.o free.o malloc.o realloc.o memchr.o memcmp.o memcpy.o memmove.o memset.o strcmp.o strcpy.o strncmp.o raise.o access.o brk.o chmod.o clock_gettime.o dup.o dup2.o execve.o fork.o fsync.o _getcwd.o gettimeofday.o ioctl3.o _open3.o _read.o time.o unlink.o waitpid.o syscall.o getpid.o kill.o
|
||||
catm ${libdir}/${MES_ARCH}-mes/libc.s eputs.s oputs.s globals.s exit.s _exit.s _write.s puts.s strlen.s isnumber.s abtol.s cast.s eputc.s fdgetc.s fdputc.s fdputs.s fdungetc.s itoa.s ltoa.s ltoab.s mes_open.s ntoab.s oputc.s ultoa.s utoa.s isdigit.s isspace.s isxdigit.s assert_msg.s write.s atoi.s lseek.s __assert_fail.s __buffered_read.s __mes_debug.s execv.s getcwd.s getenv.s isatty.s open.s buffered-read.s setenv.s wait.s fgetc.s fputc.s fputs.s getc.s getchar.s putc.s putchar.s ungetc.s free.s malloc.s realloc.s memchr.s memcmp.s memcpy.s memmove.s memset.s strcmp.s strcpy.s strncmp.s raise.s access.s brk.s chmod.s clock_gettime.s dup.s dup2.s execve.s fork.s fsync.s _getcwd.s gettimeofday.s ioctl3.s _open3.s _read.s time.s unlink.s waitpid.s syscall.s getpid.s kill.s
|
||||
|
||||
# libc+tcc.a
|
||||
mescc lib/ctype/islower.c
|
||||
|
|
@ -223,12 +232,12 @@ mescc lib/stub/ldexp.c
|
|||
mescc lib/stub/mprotect.c
|
||||
mescc lib/stub/localtime.c
|
||||
mescc lib/stub/sigemptyset.c
|
||||
mescc lib/x86-mes-mescc/setjmp.c
|
||||
mescc lib/${MES_ARCH}-mes-mescc/setjmp.c
|
||||
mescc lib/linux/close.c
|
||||
mescc lib/linux/rmdir.c
|
||||
mescc lib/linux/stat.c
|
||||
catm ${libdir}/x86-mes/libc+tcc.a ${libdir}/x86-mes/libc.a islower.o isupper.o tolower.o toupper.o abtod.o dtoab.o search-path.o execvp.o fclose.o fdopen.o ferror.o fflush.o fopen.o fprintf.o fread.o fseek.o ftell.o fwrite.o printf.o remove.o snprintf.o sprintf.o sscanf.o vfprintf.o vprintf.o vsnprintf.o vsprintf.o vsscanf.o calloc.o qsort.o strtod.o strtof.o strtol.o strtold.o strtoll.o strtoul.o strtoull.o memmem.o strcat.o strchr.o strlwr.o strncpy.o strrchr.o strstr.o strupr.o sigaction.o ldexp.o mprotect.o localtime.o sigemptyset.o setjmp.o close.o rmdir.o stat.o
|
||||
catm ${libdir}/x86-mes/libc+tcc.s ${libdir}/x86-mes/libc.s islower.s isupper.s tolower.s toupper.s abtod.s dtoab.s search-path.s execvp.s fclose.s fdopen.s ferror.s fflush.s fopen.s fprintf.s fread.s fseek.s ftell.s fwrite.s printf.s remove.s snprintf.s sprintf.s sscanf.s vfprintf.s vprintf.s vsnprintf.s vsprintf.s vsscanf.s calloc.s qsort.s strtod.s strtof.s strtol.s strtold.s strtoll.s strtoul.s strtoull.s memmem.s strcat.s strchr.s strlwr.s strncpy.s strrchr.s strstr.s strupr.s sigaction.s ldexp.s mprotect.s localtime.s sigemptyset.s setjmp.s close.s rmdir.s stat.s
|
||||
catm ${libdir}/${MES_ARCH}-mes/libc+tcc.a ${libdir}/${MES_ARCH}-mes/libc.a islower.o isupper.o tolower.o toupper.o abtod.o dtoab.o search-path.o execvp.o fclose.o fdopen.o ferror.o fflush.o fopen.o fprintf.o fread.o fseek.o ftell.o fwrite.o printf.o remove.o snprintf.o sprintf.o sscanf.o vfprintf.o vprintf.o vsnprintf.o vsprintf.o vsscanf.o calloc.o qsort.o strtod.o strtof.o strtol.o strtold.o strtoll.o strtoul.o strtoull.o memmem.o strcat.o strchr.o strlwr.o strncpy.o strrchr.o strstr.o strupr.o sigaction.o ldexp.o mprotect.o localtime.o sigemptyset.o setjmp.o close.o rmdir.o stat.o
|
||||
catm ${libdir}/${MES_ARCH}-mes/libc+tcc.s ${libdir}/${MES_ARCH}-mes/libc.s islower.s isupper.s tolower.s toupper.s abtod.s dtoab.s search-path.s execvp.s fclose.s fdopen.s ferror.s fflush.s fopen.s fprintf.s fread.s fseek.s ftell.s fwrite.s printf.s remove.s snprintf.s sprintf.s sscanf.s vfprintf.s vprintf.s vsnprintf.s vsprintf.s vsscanf.s calloc.s qsort.s strtod.s strtof.s strtol.s strtold.s strtoll.s strtoul.s strtoull.s memmem.s strcat.s strchr.s strlwr.s strncpy.s strrchr.s strstr.s strupr.s sigaction.s ldexp.s mprotect.s localtime.s sigemptyset.s setjmp.s close.s rmdir.s stat.s
|
||||
|
||||
# Build mes itself
|
||||
mescc src/builtins.c
|
||||
|
|
@ -256,20 +265,20 @@ ${MES} -e main ${mescc_scm} -- --base-address 0x08048000 -L ${libdir} -nostdlib
|
|||
|
||||
# Make directories
|
||||
mkdir ${prefix}/lib/linux ${incdir}/mes ${incdir}/sys ${incdir}/linux ${incdir}/arch
|
||||
mkdir ${prefix}/lib/x86-mes ${prefix}/lib/linux/x86-mes ${incdir}/linux/x86
|
||||
mkdir ${prefix}/lib/${MES_ARCH}-mes ${prefix}/lib/linux/${MES_ARCH}-mes ${incdir}/linux/${MES_ARCH}
|
||||
|
||||
# Install libraries
|
||||
cp ${libdir}/x86-mes/libc.a ${prefix}/lib/x86-mes/
|
||||
cp ${libdir}/x86-mes/libc+tcc.a ${prefix}/lib/x86-mes/
|
||||
cp ${libdir}/x86-mes/libmescc.a ${prefix}/lib/x86-mes/
|
||||
cp ${libdir}/x86-mes/libc.s ${prefix}/lib/x86-mes/
|
||||
cp ${libdir}/x86-mes/libc+tcc.s ${prefix}/lib/x86-mes/
|
||||
cp ${libdir}/x86-mes/libmescc.s ${prefix}/lib/x86-mes/
|
||||
cp ${libdir}/x86-mes/x86.M1 ${prefix}/lib/x86-mes/
|
||||
cp crt1.o ${prefix}/lib/x86-mes/
|
||||
cp crt1.s ${prefix}/lib/x86-mes/
|
||||
cp ${libdir}/linux/x86-mes/elf32-footer-single-main.hex2 ${prefix}/lib/linux/x86-mes/
|
||||
cp ${libdir}/linux/x86-mes/elf32-header.hex2 ${prefix}/lib/linux/x86-mes/
|
||||
cp ${libdir}/${MES_ARCH}-mes/libc.a ${prefix}/lib/${MES_ARCH}-mes/
|
||||
cp ${libdir}/${MES_ARCH}-mes/libc+tcc.a ${prefix}/lib/${MES_ARCH}-mes/
|
||||
cp ${libdir}/${MES_ARCH}-mes/libmescc.a ${prefix}/lib/${MES_ARCH}-mes/
|
||||
cp ${libdir}/${MES_ARCH}-mes/libc.s ${prefix}/lib/${MES_ARCH}-mes/
|
||||
cp ${libdir}/${MES_ARCH}-mes/libc+tcc.s ${prefix}/lib/${MES_ARCH}-mes/
|
||||
cp ${libdir}/${MES_ARCH}-mes/libmescc.s ${prefix}/lib/${MES_ARCH}-mes/
|
||||
cp ${libdir}/${MES_ARCH}-mes/${MES_ARCH}.M1 ${prefix}/lib/${MES_ARCH}-mes/
|
||||
cp crt1.o ${prefix}/lib/${MES_ARCH}-mes/
|
||||
cp crt1.s ${prefix}/lib/${MES_ARCH}-mes/
|
||||
cp ${libdir}/linux/${MES_ARCH}-mes/elf${ARCH_BITS}-footer-single-main.hex2 ${prefix}/lib/linux/${MES_ARCH}-mes/
|
||||
cp ${libdir}/linux/${MES_ARCH}-mes/elf${ARCH_BITS}-header.hex2 ${prefix}/lib/linux/${MES_ARCH}-mes/
|
||||
|
||||
# Install header files
|
||||
cp include/alloca.h ${incdir}/alloca.h
|
||||
|
|
@ -313,7 +322,7 @@ cp include/arch/kernel-stat.h ${incdir}/arch/kernel-stat.h
|
|||
cp include/arch/syscall.h ${incdir}/arch/syscall.h
|
||||
|
||||
cp include/linux/syscall.h ${incdir}/linux/syscall.h
|
||||
cp include/linux/x86/syscall.h ${incdir}/linux/x86/syscall.h
|
||||
cp include/linux/${MES_ARCH}/syscall.h ${incdir}/linux/${MES_ARCH}/syscall.h
|
||||
|
||||
cp include/mes/builtins.h ${incdir}/mes/builtins.h
|
||||
cp include/mes/cc.h ${incdir}/mes/cc.h
|
||||
|
|
@ -349,17 +358,17 @@ if match x${UPDATE_CHECKSUMS} xTrue; then
|
|||
/usr/bin/mes \
|
||||
/usr/bin/mes-m2 \
|
||||
/usr/bin/mescc.scm \
|
||||
/usr/lib/x86-mes/crt1.s \
|
||||
/usr/lib/x86-mes/crt1.o \
|
||||
/usr/lib/x86-mes/x86.M1 \
|
||||
/usr/lib/x86-mes/libmescc.s \
|
||||
/usr/lib/x86-mes/libc+tcc.s \
|
||||
/usr/lib/x86-mes/libc.s \
|
||||
/usr/lib/x86-mes/libmescc.a \
|
||||
/usr/lib/x86-mes/libc+tcc.a \
|
||||
/usr/lib/x86-mes/libc.a \
|
||||
/usr/lib/linux/x86-mes/elf32-header.hex2 \
|
||||
/usr/lib/linux/x86-mes/elf32-footer-single-main.hex2
|
||||
/usr/lib/${MES_ARCH}-mes/crt1.s \
|
||||
/usr/lib/${MES_ARCH}-mes/crt1.o \
|
||||
/usr/lib/${MES_ARCH}-mes/${MES_ARCH}.M1 \
|
||||
/usr/lib/${MES_ARCH}-mes/libmescc.s \
|
||||
/usr/lib/${MES_ARCH}-mes/libc+tcc.s \
|
||||
/usr/lib/${MES_ARCH}-mes/libc.s \
|
||||
/usr/lib/${MES_ARCH}-mes/libmescc.a \
|
||||
/usr/lib/${MES_ARCH}-mes/libc+tcc.a \
|
||||
/usr/lib/${MES_ARCH}-mes/libc.a \
|
||||
/usr/lib/linux/${MES_ARCH}-mes/elf${ARCH_BITS}-header.hex2 \
|
||||
/usr/lib/linux/${MES_ARCH}-mes/elf${ARCH_BITS}-footer-single-main.hex2
|
||||
|
||||
cp ${pkg}.checksums ${srcdir}
|
||||
else
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue