mirror of
https://github.com/Interlisp/maiko.git
synced 2026-03-21 16:42:35 +00:00
Compare commits
4 Commits
fgh_nethub
...
maiko-2405
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4becc6ad93 | ||
|
|
40a1a8dcd2 | ||
|
|
fd16058ca7 | ||
|
|
1426386830 |
2
.github/workflows/Dockerfile_maiko
vendored
2
.github/workflows/Dockerfile_maiko
vendored
@@ -18,7 +18,7 @@ COPY . ${INSTALL_LOCATION}
|
||||
# Build maiko
|
||||
RUN cd ${INSTALL_LOCATION}/bin \
|
||||
&& ./makeright x cleanup \
|
||||
&& ./makeright x nethub
|
||||
&& ./makeright x
|
||||
RUN cd ${INSTALL_LOCATION}/bin \
|
||||
&& if [ "$(./machinetype)" = "x86_64" ]; then \
|
||||
./makeright init; \
|
||||
|
||||
3
.github/workflows/buildRelease.yml
vendored
3
.github/workflows/buildRelease.yml
vendored
@@ -339,7 +339,6 @@ jobs:
|
||||
-DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" \
|
||||
-DMAIKO_DISPLAY_SDL=ON \
|
||||
-DMAIKO_DISPLAY_X11=ON \
|
||||
-DMAIKO_ENABLE_NETHUB=true \
|
||||
-DCMAKE_BUILD_TYPE=Release
|
||||
cmake --build . --config Release
|
||||
for exe in lde ldex ldesdl
|
||||
@@ -413,7 +412,7 @@ jobs:
|
||||
run: |
|
||||
wget https://cygwin.com/setup-x86_64.exe -OutFile setup-x86_64.exe
|
||||
Unblock-File setup-x86_64.exe
|
||||
Start-Process setup-x86_64.exe -Wait -ArgumentList @("--root", ".\cygwin", "--quiet-mode", "--no-admin", "--wait", "--no-shortcuts", "--no-write-registry", "--verbose", "--site", "http://www.gtlib.gatech.edu/pub/cygwin/", "--packages", "nano,binutils,make,cmake,gcc,clang")
|
||||
Start-Process setup-x86_64.exe -Wait -ArgumentList @("--root", ".\cygwin", "--quiet-mode", "--no-admin", "--wait", "--no-shortcuts", "--no-write-registry", "--verbose", "--site", "https://mirrors.kernel.org/sourceware/cygwin/", "--packages", "nano,binutils,make,cmake,gcc,clang")
|
||||
cygwin\bin\bash -login -c 'sed -i -e "s/^none/#none/" /etc/fstab; echo "none / cygdrive binary,posix=0,user 0 0" >>/etc/fstab'
|
||||
|
||||
# Retrieve SDL2 and install in cygwin
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
# Nov 20 2001 JDS: Convert to use BASH, not CSH, for open-source...
|
||||
#
|
||||
# usage: makeright [display-option] [other-option]
|
||||
#
|
||||
#
|
||||
# example: makeright single ; make lde for mmaped displayFB
|
||||
# makeright multi ; make lde for cg3,cg6
|
||||
# makeright x ; make lde for X-windows
|
||||
@@ -33,41 +33,27 @@
|
||||
#
|
||||
# makeright init requires directory "maiko/init.${architecture}
|
||||
#
|
||||
# Note: X11R4 environment link shared libraries.
|
||||
# lde need X library. If lde links shared libraries,
|
||||
# Note: X11R4 environment link shared libraries.
|
||||
# lde need X library. If lde links shared libraries,
|
||||
# X shared libraries are needed at run time.
|
||||
#
|
||||
# Hide X shared libraries from link libraries search path.
|
||||
LD_LIBRARY_PATH=/usr/local/lib
|
||||
LD_LIBRARY_PATH=/usr/local/lib
|
||||
|
||||
export PATH=".:$PATH"
|
||||
|
||||
noshift="false"
|
||||
if test "$1" = ""
|
||||
then
|
||||
display="single"
|
||||
noshift="true"
|
||||
elif test "$1" = "nethub"
|
||||
then
|
||||
display="single"
|
||||
noshift="true"
|
||||
else
|
||||
display="$1"
|
||||
noshift="false"
|
||||
fi
|
||||
|
||||
if test "$noshift" = "false"
|
||||
if test $# -gt 0
|
||||
then
|
||||
shift
|
||||
fi
|
||||
|
||||
nethub="false"
|
||||
if test "$1" = "nethub"
|
||||
then
|
||||
nethub="true"
|
||||
shift
|
||||
fi
|
||||
|
||||
architecture=`machinetype`
|
||||
osversion=`osversion`
|
||||
echo "making so far for ${osversion} on ${architecture}."
|
||||
@@ -125,12 +111,7 @@ echo start making lde for ${releasename}.
|
||||
# then finally do the make, including the right stuff
|
||||
# With makefile-tail merged, this should only take ONE make command....
|
||||
|
||||
cp -p makefile-${releasename} /tmp/makefile-${releasename}-$$
|
||||
if test "$nethub" = "true"
|
||||
then
|
||||
sed -e "/^DFLAGS = /s/$/ -DMAIKO_ENABLE_NETHUB/" -i /tmp/makefile-${releasename}-$$
|
||||
fi
|
||||
make RELEASENAME=${releasename} LDENAME=${ldename} \
|
||||
OSARCHNAME=${osversion}.${architecture} \
|
||||
-f makefile-header -f /tmp/makefile-${releasename}-$$ \
|
||||
-f makefile-header -f makefile-${releasename} \
|
||||
-f makefile-tail $*
|
||||
|
||||
@@ -15,7 +15,10 @@
|
||||
#include <stdio.h> // for perror, fprintf, printf, stderr, sprintf
|
||||
#include <stdlib.h> // for exit, free, malloc
|
||||
#include <string.h> // for memset
|
||||
#include <sys/mman.h> // for mmap
|
||||
#include <sys/mman.h> // for mmap, MAP_FAILED
|
||||
#ifndef MAP_FAILED
|
||||
#define MAP_FAILED ((void *)-1)
|
||||
#endif
|
||||
#include <sys/stat.h> // for stat, fstat
|
||||
#include <sys/types.h> // for off_t
|
||||
#include <unistd.h> // for lseek, read, close, getpagesize
|
||||
|
||||
113
src/main.c
113
src/main.c
@@ -229,7 +229,11 @@ int display_max = 65536 * 16 * 2;
|
||||
/* diagnostic flag for sysout dumping */
|
||||
extern unsigned maxpages;
|
||||
|
||||
char sysout_name[MAXPATHLEN]; /* Set by read_Xoption, in the X version. */
|
||||
char sysout_name_cl[MAXPATHLEN] = "\0"; /* sysout name as per -sysout command line arg ; Set by read_Xoption, in the X version. */
|
||||
char sysout_name_xrm[MAXPATHLEN] = "\0"; /* sysout name as per X resource manager, if any */
|
||||
char sysout_name_first_arg[MAXPATHLEN] = "\0"; /* sysout name as per 1st command line arg, if any */
|
||||
char sysout_name[MAXPATHLEN] = "\0"; /* "final" sysout name chosen from above */
|
||||
|
||||
unsigned sysout_size = 0; /* ditto */
|
||||
|
||||
int flushing = FALSE; /* see dbprint.h if set, all debug/trace printing will call fflush(stdout) after each printf */
|
||||
@@ -338,6 +342,25 @@ int main(int argc, char *argv[])
|
||||
}
|
||||
#endif /* MAIKO_ENABLE_FOREIGN_FUNCTION_INTERFACE */
|
||||
|
||||
#ifdef PROFILE
|
||||
moncontrol(0); /* initially stop sampling */
|
||||
#endif /* PROFILE */
|
||||
|
||||
//
|
||||
//
|
||||
// Process Command Line Arguments
|
||||
//
|
||||
//
|
||||
|
||||
// First check if the first argument is a sysout name
|
||||
// and save it away if it is in case the X windows
|
||||
// arg processing changes argc/argv
|
||||
if (argc > 1 && argv[1][0] != '-') {
|
||||
strncpy(sysout_name_first_arg, argv[1], MAXPATHLEN);
|
||||
i++;
|
||||
}
|
||||
|
||||
|
||||
#ifdef XWINDOW
|
||||
read_Xoption(&argc, argv);
|
||||
#endif /* XWINDOW */
|
||||
@@ -345,17 +368,6 @@ int main(int argc, char *argv[])
|
||||
save_argc = argc;
|
||||
save_argv = argv;
|
||||
|
||||
#ifdef PROFILE
|
||||
moncontrol(0); /* initially stop sampling */
|
||||
#endif /* PROFILE */
|
||||
|
||||
/* Sysout is found as follows:
|
||||
If the first argument doesn't begin with '-', assume it's the sysout
|
||||
Look at the environment variable LDESRCESYSOUT if that fails
|
||||
Look for ~/lisp.virtualmem if that fails
|
||||
Barf and print the command line if tha fails
|
||||
*/
|
||||
|
||||
i = 1;
|
||||
|
||||
if (argv[i] && ((strcmp(argv[i], "-info") == 0) || (strcmp(argv[i], "-INFO") == 0))) {
|
||||
@@ -368,35 +380,23 @@ int main(int argc, char *argv[])
|
||||
exit(0);
|
||||
}
|
||||
|
||||
if (argc > 1 && argv[1][0] != '-') {
|
||||
strncpy(sysout_name, argv[1], MAXPATHLEN);
|
||||
i++;
|
||||
} else if ((envname = getenv("LDESRCESYSOUT")) != NULL) {
|
||||
strncpy(sysout_name, envname, MAXPATHLEN);
|
||||
} else if ((envname = getenv("LDESOURCESYSOUT")) != NULL)
|
||||
strncpy(sysout_name, envname, MAXPATHLEN);
|
||||
else {
|
||||
#ifdef DOS
|
||||
strncpy(sysout_name, "lisp.vm", MAXPATHLEN);
|
||||
#else
|
||||
if ((envname = getenv("HOME")) != NULL) {
|
||||
strncpy(sysout_name, envname, MAXPATHLEN);
|
||||
strncat(sysout_name, "/lisp.virtualmem", MAXPATHLEN - 17);
|
||||
}
|
||||
#endif /* DOS */
|
||||
}
|
||||
if (access(sysout_name, R_OK)) {
|
||||
perror("Couldn't find a sysout to run");
|
||||
(void)fprintf(stderr, "%s%s", helpstring, nethubHelpstring);
|
||||
exit(1);
|
||||
}
|
||||
/* OK, sysout name is now in sysout_name, and i is moved past a supplied name */
|
||||
|
||||
for (; i < argc; i += 1) { /* step by 1 in case of typo */
|
||||
|
||||
// NOTE: in the case of X Windows, some of the args being checked for in this loop
|
||||
// have already been processed (and removed from argv) by the call to read_Xoption()
|
||||
// above. (See readXoption() in xrdopt.c)
|
||||
|
||||
/* Check for -sysout arg */
|
||||
if (!strcmp(argv[i], "-sysout")) {
|
||||
if (argc > ++i) {
|
||||
strncpy(sysout_name_cl, argv[i], MAXPATHLEN);
|
||||
}
|
||||
}
|
||||
|
||||
/* -t and -m are undocumented and somewhat dangerous... */
|
||||
|
||||
if (!strcmp(argv[i], "-t")) { /**** timer interval ****/
|
||||
else if (!strcmp(argv[i], "-t")) { /**** timer interval ****/
|
||||
if (argc > ++i) {
|
||||
errno = 0;
|
||||
tmpint = strtol(argv[i], (char **)NULL, 10);
|
||||
@@ -610,6 +610,47 @@ int main(int argc, char *argv[])
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// OK, now we can process the sysout_name
|
||||
// Order of priority:
|
||||
// 1. Value of -sysout command line arg
|
||||
// 2. Value of the first command line arg
|
||||
// 3. Value of LDESRCESYSOUT env variable
|
||||
// 4. Value of LDESOURCESYSOUT env variable
|
||||
// 5. Value as determined by X resource manager, if any
|
||||
// 6. Value of $HOME/lisp.virtualmem (or lisp.vm for DOS)
|
||||
//
|
||||
if (sysout_name_cl[0] != '\0') { strncpy(sysout_name, sysout_name_cl, MAXPATHLEN); }
|
||||
else if (sysout_name_first_arg[0] != '\0') { strncpy(sysout_name, sysout_name_first_arg, MAXPATHLEN); }
|
||||
else if ((envname = getenv("LDESRCESYSOUT")) != NULL) { strncpy(sysout_name, envname, MAXPATHLEN); }
|
||||
else if ((envname = getenv("LDESOURCESYSOUT")) != NULL) { strncpy(sysout_name, envname, MAXPATHLEN); }
|
||||
else if (sysout_name_xrm[0] != '\0') { strncpy(sysout_name, sysout_name_xrm, MAXPATHLEN); }
|
||||
else {
|
||||
#ifdef DOS
|
||||
strncpy(sysout_name, "lisp.vm", MAXPATHLEN);
|
||||
#else
|
||||
if ((envname = getenv("HOME")) != NULL) {
|
||||
strncpy(sysout_name, envname, MAXPATHLEN);
|
||||
strncat(sysout_name, "/lisp.virtualmem", MAXPATHLEN - 17);
|
||||
}
|
||||
#endif /* DOS */
|
||||
}
|
||||
if ((sysout_name[0] == '\0') || (access(sysout_name, R_OK))) {
|
||||
perror("Couldn't find a sysout to run");
|
||||
fprintf(stderr, "Looking for: %s\n", sysout_name);
|
||||
(void)fprintf(stderr, "%s%s", helpstring, nethubHelpstring);
|
||||
exit(1);
|
||||
}
|
||||
/* OK, sysout name is now in sysout_name */
|
||||
|
||||
|
||||
//
|
||||
//
|
||||
// End of command line arg processing
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
/* Sanity checks. */
|
||||
#ifdef DOS
|
||||
probemouse(); /* See if the mouse is connected. */
|
||||
|
||||
28
src/xrdopt.c
28
src/xrdopt.c
@@ -85,7 +85,8 @@ char Window_Title[255];
|
||||
extern char Icon_Title[255];
|
||||
char Icon_Title[255];
|
||||
|
||||
extern char sysout_name[];
|
||||
extern char sysout_name_cl[];
|
||||
extern char sysout_name_xrm[];
|
||||
extern unsigned sysout_size;
|
||||
extern int for_makeinit, please_fork, noscroll;
|
||||
/* diagnostic flag for sysout dumping */
|
||||
@@ -181,20 +182,9 @@ void read_Xoption(int *argc, char *argv[])
|
||||
print_Xusage(argv[0]);
|
||||
}
|
||||
|
||||
sysout_name[0] = '\0';
|
||||
if (*argc == 2) { /* There was probably a sysoutarg */
|
||||
(void)strncpy(sysout_name, argv[1], PATH_MAX - 1);
|
||||
} else if ((envname = getenv("LDESRCESYSOUT")) != NULL) {
|
||||
strncpy(sysout_name, envname, PATH_MAX - 1);
|
||||
} else if ((envname = getenv("LDESOURCESYSOUT")) != NULL)
|
||||
strncpy(sysout_name, envname, PATH_MAX - 1);
|
||||
else {
|
||||
envname = getenv("HOME");
|
||||
(void)strcat(sysout_name, envname);
|
||||
(void)strcat(sysout_name, "/lisp.virtualmem");
|
||||
}
|
||||
if (access(sysout_name, R_OK) != 0) {
|
||||
sysout_name[0] = '\0';
|
||||
if (XrmGetResource(commandlineDB, "ldex.sysout", "Ldex.Sysout", str_type, &value) == True) {
|
||||
/* Get Sysout from command line only */
|
||||
(void)strncpy(sysout_name_cl, value.addr, value.size);
|
||||
}
|
||||
|
||||
/* In order to access other DB's we have to open the main display now */
|
||||
@@ -244,12 +234,8 @@ void read_Xoption(int *argc, char *argv[])
|
||||
(void)XrmMergeDatabases(commandlineDB, &rDB);
|
||||
|
||||
if (XrmGetResource(rDB, "ldex.sysout", "Ldex.Sysout", str_type, &value) == True) {
|
||||
/* Get Sysout */
|
||||
(void)strncpy(sysout_name, value.addr, value.size);
|
||||
}
|
||||
if (sysout_name[0] == '\0') {
|
||||
(void)fprintf(stderr, "Couldn't find a sysout to run;\n");
|
||||
print_Xusage(argv[0]);
|
||||
/* Get Sysout from x resource manager */
|
||||
(void)strncpy(sysout_name_xrm, value.addr, value.size);
|
||||
}
|
||||
|
||||
if (XrmGetResource(rDB, "ldex.title", "Ldex.Title", str_type, &value) == True) {
|
||||
|
||||
Reference in New Issue
Block a user