ref: ccd7f9f1597e56d121e1d05cf6af86f688ef2c48
parent: 995a32b23775fd83b4d808d713b8d885cc2b297b
author: henesy <devnull@localhost>
date: Sun Nov 11 18:32:59 EST 2018
add extra INSTALL step to create stub directories
--- a/INSTALL
+++ b/INSTALL
@@ -62,7 +62,7 @@
name), SYSHOST and OBJTYPE. The comments in the file
should help you choose.
-2 Run makemk.sh to rebuild the mk command, which is
+2 Run `makemk.sh` to rebuild the `mk` command, which is
used to build everything else.
3 Set PATH (or path on Plan 9) to include the bin
@@ -69,9 +69,11 @@
directory for the platform, which will now contain the
mk binary just built. On Unix, export PATH.
-4 Then mk nuke to remove any extraneous object files.
+4 Then `mk nuke` to remove any extraneous object files.
-5 Finally, mk install to create and install the
+5 Then `mk mkdirs` to create all the missing directories.
+
+6 Finally, `mk install` to create and install the
libraries, limbo compiler, emu for hosted Inferno,
and auxiliary commands. The rules do that in an order
that ensures that the commands or libraries needed by a
@@ -84,3 +86,4 @@
search path, since there is no equivalent of makemk.sh.
Otherwise the procedure is the same. On Plan 9, of course,
the host system's normal version of mk should be adequate.
+
binary files a/Linux/386/bin/c2l b/Linux/386/bin/c2l differ
binary files a/Linux/386/bin/data2c b/Linux/386/bin/data2c differ
binary files a/Linux/386/bin/ftl b/Linux/386/bin/ftl differ
binary files a/Linux/386/bin/iar b/Linux/386/bin/iar differ
binary files a/Linux/386/bin/idea b/Linux/386/bin/idea differ
binary files a/Linux/386/bin/inm b/Linux/386/bin/inm differ
binary files a/Linux/386/bin/iyacc b/Linux/386/bin/iyacc differ
binary files a/Linux/386/bin/kprof b/Linux/386/bin/kprof differ
binary files a/Linux/386/bin/ksize b/Linux/386/bin/ksize differ
binary files a/Linux/386/bin/kstrip b/Linux/386/bin/kstrip differ
binary files a/Linux/386/bin/md5sum b/Linux/386/bin/md5sum differ
binary files a/Linux/386/bin/mk b/Linux/386/bin/mk differ
binary files a/Linux/386/bin/mk.save b/Linux/386/bin/mk.save differ
binary files a/Linux/386/bin/mkext b/Linux/386/bin/mkext differ
binary files a/Linux/386/bin/mkppcimage b/Linux/386/bin/mkppcimage differ
binary files a/Linux/386/bin/ms2 b/Linux/386/bin/ms2 differ
binary files a/Linux/386/bin/ndate b/Linux/386/bin/ndate differ
binary files a/Linux/386/bin/sqz b/Linux/386/bin/sqz differ
binary files a/Linux/386/bin/srclist b/Linux/386/bin/srclist differ
binary files a/Linux/386/bin/styxtest b/Linux/386/bin/styxtest differ
--- /dev/null
+++ b/emu/Linux/emu.c
@@ -1,0 +1,90 @@
+#include "dat.h"
+#include "fns.h"
+#include "error.h"
+#include "interp.h"
+
+
+#include "emu.root.h"
+
+ulong ndevs = 28;
+
+extern Dev rootdevtab;
+extern Dev consdevtab;
+extern Dev envdevtab;
+extern Dev mntdevtab;
+extern Dev pipedevtab;
+extern Dev progdevtab;
+extern Dev profdevtab;
+extern Dev srvdevtab;
+extern Dev dupdevtab;
+extern Dev ssldevtab;
+extern Dev capdevtab;
+extern Dev fsdevtab;
+extern Dev cmddevtab;
+extern Dev indirdevtab;
+extern Dev drawdevtab;
+extern Dev pointerdevtab;
+extern Dev snarfdevtab;
+extern Dev ipdevtab;
+extern Dev eiadevtab;
+extern Dev memdevtab;
+Dev* devtab[]={
+ &rootdevtab,
+ &consdevtab,
+ &envdevtab,
+ &mntdevtab,
+ &pipedevtab,
+ &progdevtab,
+ &profdevtab,
+ &srvdevtab,
+ &dupdevtab,
+ &ssldevtab,
+ &capdevtab,
+ &fsdevtab,
+ &cmddevtab,
+ &indirdevtab,
+ &drawdevtab,
+ &pointerdevtab,
+ &snarfdevtab,
+ &ipdevtab,
+ &eiadevtab,
+ &memdevtab,
+ nil,
+ nil,
+ nil,
+ nil,
+ nil,
+ nil,
+ nil,
+ nil,
+ nil,
+};
+
+void links(void){
+}
+
+extern void sysmodinit(void);
+extern void drawmodinit(void);
+extern void tkmodinit(void);
+extern void mathmodinit(void);
+extern void srvmodinit(void);
+extern void keyringmodinit(void);
+extern void cryptmodinit(void);
+extern void ipintsmodinit(void);
+extern void loadermodinit(void);
+extern void freetypemodinit(void);
+void modinit(void){
+ sysmodinit();
+ drawmodinit();
+ tkmodinit();
+ mathmodinit();
+ srvmodinit();
+ keyringmodinit();
+ cryptmodinit();
+ ipintsmodinit();
+ loadermodinit();
+ freetypemodinit();
+}
+
+char* conffile = "emu";
+ulong kerndate = KERNDATE;
--- /dev/null
+++ b/emu/Linux/emu.root.c
@@ -1,0 +1,1 @@
+/* Generated by mkroot */
--- /dev/null
+++ b/emu/Linux/emu.root.h
@@ -1,0 +1,25 @@
+int rootmaxq = 10;
+Dirtab roottab[10] = {
+ "", {0, 0, QTDIR}, 0, 0555,
+ "dev", {1, 0, QTDIR}, 0, 0555,
+ "fd", {2, 0, QTDIR}, 0, 0555,
+ "prog", {3, 0, QTDIR}, 0, 0555,
+ "prof", {4, 0, QTDIR}, 0, 0555,
+ "net", {5, 0, QTDIR}, 0, 0555,
+ "net.alt", {6, 0, QTDIR}, 0, 0555,
+ "chan", {7, 0, QTDIR}, 0, 0555,
+ "nvfs", {8, 0, QTDIR}, 0, 0555,
+ "env", {9, 0, QTDIR}, 0, 0555,
+};
+Rootdata rootdata[10] = {
+ 0, &roottab[1], 9, nil,
+ 0, nil, 0, nil,
+ 0, nil, 0, nil,
+ 0, nil, 0, nil,
+ 0, nil, 0, nil,
+ 0, nil, 0, nil,
+ 0, nil, 0, nil,
+ 0, nil, 0, nil,
+ 0, nil, 0, nil,
+ 0, nil, 0, nil,
+};
--- /dev/null
+++ b/emu/Linux/errstr.h
@@ -1,0 +1,65 @@
+char Enoerror[] = "no error";
+char Emount[] = "inconsistent mount";
+char Eunmount[] = "not mounted";
+char Eunion[] = "not in union";
+char Emountrpc[] = "mount rpc error";
+char Eshutdown[] = "mounted device shut down";
+char Eowner[] = "not owner";
+char Eunknown[] = "unknown user or group id";
+char Enocreate[] = "mounted directory forbids creation";
+char Enonexist[] = "file does not exist";
+char Eexist[] = "file already exists";
+char Ebadsharp[] = "unknown device in # filename";
+char Enotdir[] = "not a directory";
+char Eisdir[] = "file is a directory";
+char Ebadchar[] = "bad character in file name";
+char Efilename[] = "file name syntax";
+char Eperm[] = "permission denied";
+char Ebadusefd[] = "inappropriate use of fd";
+char Ebadarg[] = "bad arg in system call";
+char Einuse[] = "device or object already in use";
+char Eio[] = "i/o error";
+char Etoobig[] = "read or write too large";
+char Etoosmall[] = "read or write too small";
+char Enetaddr[] = "bad network address";
+char Emsgsize[] = "message is too big for protocol";
+char Enetbusy[] = "network device is busy or allocated";
+char Enoproto[] = "network protocol not supported";
+char Enoport[] = "network port not available";
+char Enoifc[] = "bad interface or no free interface slots";
+char Enolisten[] = "not announced";
+char Ehungup[] = "i/o on hungup channel";
+char Ebadctl[] = "bad process or channel control request";
+char Enodev[] = "no free devices";
+char Enoenv[] = "no free environment resources";
+char Ethread[] = "thread exited";
+char Enochild[] = "no living children";
+char Eioload[] = "i/o error in demand load";
+char Enovmem[] = "out of memory: virtual memory";
+char Ebadld[] = "illegal line discipline";
+char Ebadfd[] = "fd out of range or not open";
+char Eisstream[] = "seek on a stream";
+char Ebadexec[] = "exec header invalid";
+char Etimedout[] = "connection timed out";
+char Econrefused[] = "connection refused";
+char Econinuse[] = "connection in use";
+char Enetunreach[] = "network unreachable";
+char Eintr[] = "interrupted";
+char Enomem[] = "out of memory: kernel";
+char Esfnotcached[] = "subfont not cached";
+char Esoverlap[] = "segments overlap";
+char Emouseset[] = "mouse type already set";
+char Eshort[] = "i/o count too small";
+char Enobitstore[] = "out of screen memory";
+char Egreg[] = "jim'll fix it";
+char Ebadspec[] = "bad attach specifier";
+char Estopped[] = "thread must be stopped";
+char Enoattach[] = "mount/attach disallowed";
+char Eshortstat[] = "stat buffer too small";
+char Enegoff[] = "negative i/o offset";
+char Ebadstat[] = "malformed stat buffer";
+char Ecmdargs[] = "wrong #args in control message";
+char Enofd[] = "no free file descriptors";
+char Enoctl[] = "unknown control request";
+
+void error(char*);
binary files a/utils/mk/mk b/utils/mk/mk differ