diff --git a/include/m2/lib.h b/include/m2/lib.h new file mode 100644 index 00000000..620ef193 --- /dev/null +++ b/include/m2/lib.h @@ -0,0 +1,30 @@ +/* + * GNU Mes --- Maxwell Equations of Software + * Copyright © 2019 Jan (janneke) Nieuwenhuizen + * + * 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 . + */ + +#ifndef __M2_LIB_H +#define __M2_LIB_H + +char **environ; +int __stdin; +int __stdout; +int __stderr; +int errno; + +#endif /* __M2_LIB_H */ diff --git a/scaffold/hello.kaem b/scaffold/hello.kaem new file mode 100644 index 00000000..25fd5254 --- /dev/null +++ b/scaffold/hello.kaem @@ -0,0 +1,55 @@ +#!/bin/bash +# Copyright (C) 2019 Jeremiah Orians +# 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 . + +# Usage: +# kaem --verbose --strict --file scaffold/hello.kaem +# scaffold/hello-m2 + +M2-Planet \ + --debug \ + --architecture x86 \ + -f include/m2/lib.h \ + -f lib/linux/x86-mes-m2/crt1.c \ + -f lib/linux/x86-mes-m2/mini.c \ + -f lib/string/strlen.c \ + -f lib/mes/write.c \ + -f lib/mes/eputs.c \ + -f scaffold/hello.c \ + -o scaffold/hello.M1 + +blood-elf -f scaffold/hello.M1 -o scaffold/hello.blood-elf-M1 + +M1 \ + --LittleEndian \ + --architecture x86 \ + -f lib/m2/x86/x86_defs.M1 \ + -f lib/x86-mes/x86.M1 \ + -f lib/linux/x86-mes-m2/crt1.M1 \ + -f scaffold/hello.M1 \ + -f scaffold/hello.blood-elf-M1 \ + -o scaffold/hello.hex2 + +hex2 \ + --LittleEndian \ + --architecture x86 \ + --BaseAddress 0x1000000 \ + --exec_enable \ + -f lib/x86-mes/elf32-header.hex2 \ + -f scaffold/hello.hex2 \ + -o scaffold/hello-m2 + +echo Now run: scaffold/hello-m2