build: mlib/include to include, move mlib to lib.
* include: Move from mlib/include. * lib: Move from mlib. * BOOTSTRAP: Update. * HACKING: Update. * guile/guix/make.scm: Update. * make.scm: Update. * module/language/c99/compiler.mes: Update.
This commit is contained in:
parent
1762efc4b9
commit
0fa18b338d
|
@ -68,10 +68,10 @@ Do:
|
|||
*** Remember that mes.M1 is compiled by mescc from prototyped src/mes.c in C.
|
||||
*** stage0/mescc-tools: TODO
|
||||
*** Mes
|
||||
M1 -f stage0/x86.M1 -f mlibc/crt1.M1 --LittleEndian --Architecture=1 > mlibc/crt1.hex2
|
||||
M1 -f stage0/x86.M1 -f mlibc/mini-libc-mes.M1 --LittleEndian --Architecture=1 > mlibc/libc-mes.hex2
|
||||
M1 -f stage0/x86.M1 -f lib/crt1.M1 --LittleEndian --Architecture=1 > lib/crt1.hex2
|
||||
M1 -f stage0/x86.M1 -f lib/mini-libc-mes.M1 --LittleEndian --Architecture=1 > lib/libc-mes.hex2
|
||||
M1 -f stage0/x86.M1 -f src/mes.M1 --LittleEndian --Architecture=1 > src/mes.hex2
|
||||
hex2 --LittleEndian --Architecture=1 --BaseAddress=0x1000000 -f stage0/elf32-header.hex2 -f mlibc/crt1.hex2 -f mlibc/libc-mes.hex2 -f src/mes.hex2 -f stage0/elf32-footer-single-main.hex2 > src/mes-mes
|
||||
hex2 --LittleEndian --Architecture=1 --BaseAddress=0x1000000 -f stage0/elf32-header.hex2 -f lib/crt1.hex2 -f lib/libc-mes.hex2 -f src/mes.hex2 -f stage0/elf32-footer-single-main.hex2 > src/mes-mes
|
||||
exec_enable src/mes-mes
|
||||
*** Tinycc
|
||||
./build.sh
|
||||
|
|
2
HACKING
2
HACKING
|
@ -24,7 +24,7 @@ slower than guile. That's why we usually don't use mes during development.
|
|||
gcc is used to verify the sanity of our C sources.
|
||||
|
||||
i686-unknown-linux-gnu-gcc is used to compare hex/assembly, to test
|
||||
the gcc variant of mlbic: mlibc/libc-gcc.c and steal ideas.
|
||||
the gcc variant of mes libc: lib/libc-gcc.c and steal ideas.
|
||||
|
||||
Guile is used to develop mescc, the C compiler in Scheme that during
|
||||
bootstrapping will be executed by mes.
|
||||
|
|
|
@ -343,9 +343,9 @@
|
|||
"-D"
|
||||
"POSIX=1"
|
||||
"-I" "src"
|
||||
"-I" "mlibc"
|
||||
"-I" "mlibc/include"
|
||||
"--include=mlibc/libc-gcc.c"))
|
||||
"-I" "lib"
|
||||
"-I" "include"
|
||||
"--include=lib/libc-gcc.c"))
|
||||
|
||||
(define %C32-FLAGS
|
||||
'("--std=gnu99"
|
||||
|
@ -353,8 +353,8 @@
|
|||
"-g"
|
||||
"-m32"
|
||||
"-I" "src"
|
||||
"-I" "mlibc"
|
||||
"-I" "mlibc/include"))
|
||||
"-I" "lib"
|
||||
"-I" "include"))
|
||||
|
||||
(define* (CC.gcc #:key (libc #t) (cc (if (eq? libc #t) %CC %CC32)) (c-flags (if (eq? libc #t) %C-FLAGS %C32-FLAGS)) (defines '()) (includes '()))
|
||||
(method (name "CC.gcc")
|
||||
|
@ -538,6 +538,6 @@
|
|||
(if (target? o) o
|
||||
(find (lambda (t) (equal? (target-file-name t) o)) %targets)))
|
||||
|
||||
(define crt1.mlibc-o (compile.gcc "mlibc/crt1.c" #:libc #f))
|
||||
(define libc-gcc.mlibc-o (compile.gcc "mlibc/libc-gcc.c" #:libc #f))
|
||||
(define libc-gcc+tcc.mlibc-o (compile.gcc "mlibc/libc-gcc+tcc.c" #:libc #f))
|
||||
(define crt1.mlibc-o (compile.gcc "lib/crt1.c" #:libc #f))
|
||||
(define libc-gcc.mlibc-o (compile.gcc "lib/libc-gcc.c" #:libc #f))
|
||||
(define libc-gcc+tcc.mlibc-o (compile.gcc "lib/libc-gcc+tcc.c" #:libc #f))
|
||||
|
|
114
make.scm
114
make.scm
|
@ -38,7 +38,7 @@ exec ${GUILE-guile} --no-auto-compile -L . -L guile -C . -C guile -s "$0" ${1+"$
|
|||
(ice-9 match)
|
||||
(guix make))
|
||||
|
||||
(define crt1.hex2 (m1.as "mlibc/crt1.c"))
|
||||
(define crt1.hex2 (m1.as "lib/crt1.c"))
|
||||
(add-target crt1.hex2)
|
||||
|
||||
(add-target crt1.mlibc-o)
|
||||
|
@ -95,28 +95,28 @@ exec ${GUILE-guile} --no-auto-compile -L . -L guile -C . -C guile -s "$0" ${1+"$
|
|||
,@(if libc (list libc) '())))
|
||||
(method (LINK.hex2 #:hex2 hex2 #:crt1 crt1 #:libc libc #:debug? (eq? libc libc-mes.hex2))))))
|
||||
|
||||
;;(define mini-libc-mes.E (m1.as "mlibc/mini-libc-mes.c"))
|
||||
;;(define mini-libc-mes.E (m1.as "lib/mini-libc-mes.c"))
|
||||
|
||||
(define libc-mes.hex2 (m1.as "mlibc/libc-mes.c"))
|
||||
(define libc-mes.hex2 (m1.as "lib/libc-mes.c"))
|
||||
(add-target libc-mes.hex2)
|
||||
|
||||
(define mini-libc-mes.hex2 (m1.as "mlibc/mini-libc-mes.c"))
|
||||
(define mini-libc-mes.hex2 (m1.as "lib/mini-libc-mes.c"))
|
||||
(add-target mini-libc-mes.hex2)
|
||||
|
||||
(define libc-mes+tcc.hex2 (m1.as "mlibc/libc-mes+tcc.c"))
|
||||
(define libc-mes+tcc.hex2 (m1.as "lib/libc-mes+tcc.c"))
|
||||
(add-target libc-mes+tcc.hex2)
|
||||
|
||||
(add-target (bin.mescc "stage0/exit-42.c" #:libc #f))
|
||||
(add-target (check "stage0/exit-42.0-guile" #:exit 42))
|
||||
|
||||
(add-target (cpp.mescc "mlibc/mini-libc-mes.c"))
|
||||
(add-target (compile.mescc "mlibc/mini-libc-mes.c"))
|
||||
(add-target (cpp.mescc "lib/mini-libc-mes.c"))
|
||||
(add-target (compile.mescc "lib/mini-libc-mes.c"))
|
||||
|
||||
(add-target (bin.mescc "stage0/exit-42.c" #:libc mini-libc-mes.hex2))
|
||||
(add-target (check "stage0/exit-42.mini-guile" #:exit 42))
|
||||
|
||||
(add-target (cpp.mescc "mlibc/libc-mes.c"))
|
||||
(add-target (compile.mescc "mlibc/libc-mes.c"))
|
||||
(add-target (cpp.mescc "lib/libc-mes.c"))
|
||||
(add-target (compile.mescc "lib/libc-mes.c"))
|
||||
|
||||
(add-target (bin.mescc "stage0/exit-42.c"))
|
||||
(add-target (check "stage0/exit-42.guile" #:exit 42))
|
||||
|
@ -130,9 +130,9 @@ exec ${GUILE-guile} --no-auto-compile -L . -L guile -C . -C guile -s "$0" ${1+"$
|
|||
((eq? libc mini-libc-mes.hex2) "mini-")
|
||||
(else "")) "guile") #:exit exit)))
|
||||
|
||||
(add-target (compile.gcc "mlibc/crt1.c" #:libc #f))
|
||||
(add-target (compile.gcc "mlibc/libc-gcc.c" #:libc #f))
|
||||
(add-target (compile.gcc "mlibc/libc-gcc+tcc.c" #:libc #f))
|
||||
(add-target (compile.gcc "lib/crt1.c" #:libc #f))
|
||||
(add-target (compile.gcc "lib/libc-gcc.c" #:libc #f))
|
||||
(add-target (compile.gcc "lib/libc-gcc+tcc.c" #:libc #f))
|
||||
|
||||
;;(add-scaffold-test "t" #:libc mini-libc-mes.hex2)
|
||||
(add-scaffold-test "t")
|
||||
|
@ -253,8 +253,8 @@ exec ${GUILE-guile} --no-auto-compile -L . -L guile -C . -C guile -s "$0" ${1+"$
|
|||
|
||||
(add-target (group "check-scaffold-tests" #:dependencies (filter (target-prefix? "check-scaffold/tests") %targets)))
|
||||
|
||||
(add-target (cpp.mescc "mlibc/libc-mes+tcc.c"))
|
||||
(add-target (compile.mescc "mlibc/libc-mes+tcc.c"))
|
||||
(add-target (cpp.mescc "lib/libc-mes+tcc.c"))
|
||||
(add-target (compile.mescc "lib/libc-mes+tcc.c"))
|
||||
|
||||
(define* (add-tcc-test name)
|
||||
(add-target (bin.gcc (string-append "scaffold/tinycc/" name ".c") #:libc libc-gcc.mlibc-o #:includes '("scaffold/tinycc")))
|
||||
|
@ -593,54 +593,54 @@ exec ${GUILE-guile} --no-auto-compile -L . -L guile -C . -C guile -s "$0" ${1+"$
|
|||
((install-guile-dir #:dir (string-append %godir)) f))
|
||||
%go-files)
|
||||
|
||||
(add-target (install "mlibc/crt1.hex2" #:dir "lib"))
|
||||
(add-target (install "mlibc/libc-mes.M1" #:dir "lib"))
|
||||
(add-target (install "mlibc/libc-mes.hex2" #:dir "lib"))
|
||||
(add-target (install "mlibc/libc-mes+tcc.M1" #:dir "lib"))
|
||||
(add-target (install "mlibc/libc-mes+tcc.hex2" #:dir "lib"))
|
||||
(add-target (install "mlibc/mini-libc-mes.M1" #:dir "lib"))
|
||||
(add-target (install "mlibc/mini-libc-mes.hex2" #:dir "lib"))
|
||||
(add-target (install "lib/crt1.hex2" #:dir "lib"))
|
||||
(add-target (install "lib/libc-mes.M1" #:dir "lib"))
|
||||
(add-target (install "lib/libc-mes.hex2" #:dir "lib"))
|
||||
(add-target (install "lib/libc-mes+tcc.M1" #:dir "lib"))
|
||||
(add-target (install "lib/libc-mes+tcc.hex2" #:dir "lib"))
|
||||
(add-target (install "lib/mini-libc-mes.M1" #:dir "lib"))
|
||||
(add-target (install "lib/mini-libc-mes.hex2" #:dir "lib"))
|
||||
|
||||
(add-target (install "mlibc/crt1.mlibc-o" #:dir "lib"))
|
||||
(add-target (install "mlibc/libc-gcc.mlibc-o" #:dir "lib"))
|
||||
(add-target (install "mlibc/libc-gcc+tcc.mlibc-o" #:dir "lib"))
|
||||
(add-target (install "lib/crt1.mlibc-o" #:dir "lib"))
|
||||
(add-target (install "lib/libc-gcc.mlibc-o" #:dir "lib"))
|
||||
(add-target (install "lib/libc-gcc+tcc.mlibc-o" #:dir "lib"))
|
||||
|
||||
(for-each
|
||||
(lambda (f)
|
||||
((install-dir #:dir "share/") f))
|
||||
'("mlibc/include/alloca.h"
|
||||
"mlibc/include/assert.h"
|
||||
"mlibc/include/ctype.h"
|
||||
"mlibc/include/dlfcn.h"
|
||||
"mlibc/include/errno.h"
|
||||
"mlibc/include/fcntl.h"
|
||||
"mlibc/include/features.h"
|
||||
"mlibc/include/inttypes.h"
|
||||
"mlibc/include/libgen.h"
|
||||
"mlibc/include/limits.h"
|
||||
"mlibc/include/locale.h"
|
||||
"mlibc/include/math.h"
|
||||
"mlibc/include/mlibc.h"
|
||||
"mlibc/include/setjmp.h"
|
||||
"mlibc/include/signal.h"
|
||||
"mlibc/include/stdarg.h"
|
||||
"mlibc/include/stdbool.h"
|
||||
"mlibc/include/stdint.h"
|
||||
"mlibc/include/stdio.h"
|
||||
"mlibc/include/stdlib.h"
|
||||
"mlibc/include/stdnoreturn.h"
|
||||
"mlibc/include/string.h"
|
||||
"mlibc/include/strings.h"
|
||||
"mlibc/include/sys/cdefs.h"
|
||||
"mlibc/include/sys/mman.h"
|
||||
"mlibc/include/sys/stat.h"
|
||||
"mlibc/include/sys/time.h"
|
||||
"mlibc/include/sys/timeb.h"
|
||||
"mlibc/include/sys/types.h"
|
||||
"mlibc/include/sys/ucontext.h"
|
||||
"mlibc/include/sys/wait.h"
|
||||
"mlibc/include/time.h"
|
||||
"mlibc/include/unistd.h"))
|
||||
'("include/alloca.h"
|
||||
"include/assert.h"
|
||||
"include/ctype.h"
|
||||
"include/dlfcn.h"
|
||||
"include/errno.h"
|
||||
"include/fcntl.h"
|
||||
"include/features.h"
|
||||
"include/inttypes.h"
|
||||
"include/libgen.h"
|
||||
"include/limits.h"
|
||||
"include/locale.h"
|
||||
"include/math.h"
|
||||
"include/mlibc.h"
|
||||
"include/setjmp.h"
|
||||
"include/signal.h"
|
||||
"include/stdarg.h"
|
||||
"include/stdbool.h"
|
||||
"include/stdint.h"
|
||||
"include/stdio.h"
|
||||
"include/stdlib.h"
|
||||
"include/stdnoreturn.h"
|
||||
"include/string.h"
|
||||
"include/strings.h"
|
||||
"include/sys/cdefs.h"
|
||||
"include/sys/mman.h"
|
||||
"include/sys/stat.h"
|
||||
"include/sys/time.h"
|
||||
"include/sys/timeb.h"
|
||||
"include/sys/types.h"
|
||||
"include/sys/ucontext.h"
|
||||
"include/sys/wait.h"
|
||||
"include/time.h"
|
||||
"include/unistd.h"))
|
||||
|
||||
(for-each
|
||||
(compose add-target (cut install <> #:dir "share/doc/mes"))
|
||||
|
|
|
@ -63,9 +63,9 @@
|
|||
(define mes? (pair? (current-module)))
|
||||
|
||||
(define* (c99-input->full-ast #:key (defines '()) (includes '()))
|
||||
(let ((include (if (equal? %prefix "") "mlibc/include" (string-append %prefix "/share/mlibc/include"))))
|
||||
(let ((include (if (equal? %prefix "") "include" (string-append %prefix "/share/include"))))
|
||||
(parse-c99
|
||||
#:inc-dirs (append includes (cons* include "mlibc/include" "mlibc" (or (and=> (getenv "C_INCLUDE_PATH") (cut string-split <> #\:)) '())))
|
||||
#:inc-dirs (append includes (cons* include "include" "lib" (or (and=> (getenv "C_INCLUDE_PATH") (cut string-split <> #\:)) '())))
|
||||
#:cpp-defs `(
|
||||
"NULL=0"
|
||||
"__linux__=1"
|
||||
|
|
Loading…
Reference in a new issue