mirror of
https://github.com/Interlisp/maiko.git
synced 2026-03-01 09:30:56 +00:00
Merge pull request #536 from Interlisp/fgh_fix-2164-WSL1-try2
To fix Issue#2164, create infrastructure to compile Maiko for Windows System for Linux v1 as a separate OS from Linux Created makefile-wsl1-* files as well as makefile-init-wsl1-* files. Modified bin/osversion to detect wsl1 as a special case of linux so that the wsl1 makefiles would be selected appropriately by makeright. Did not make CMAKE changes for WSL1. Changed Build Release workflow (via changes to Dockerfile-maiko) to build wsl1 versions of lde, ldex, ldesdl and ldeinit for x86_64 and aarch64. These are now included in the release tars.
This commit is contained in:
13
.github/workflows/Dockerfile_maiko
vendored
13
.github/workflows/Dockerfile_maiko
vendored
@@ -18,8 +18,17 @@ COPY . ${INSTALL_LOCATION}
|
||||
# Build maiko
|
||||
RUN cd ${INSTALL_LOCATION}/bin \
|
||||
&& ./makeright x cleanup \
|
||||
&& ./makeright x
|
||||
RUN cd ${INSTALL_LOCATION}/bin \
|
||||
&& ./makeright x \
|
||||
&& if [ "$(./machinetype)" = "x86_64" ]; then \
|
||||
./makeright init; \
|
||||
fi
|
||||
# Build specially for WSL1 by "fooling" a linux build
|
||||
RUN cd ${INSTALL_LOCATION}/bin \
|
||||
&& arch="$(./machinetype)" \
|
||||
&& if [ "$arch" = "x86_64" ] || [ "$arch" = "aarch64" ]; then \
|
||||
export LDEARCH="${arch}-microsoft-wsl1" \
|
||||
&& ./makeright x cleanup \
|
||||
&& ./makeright x \
|
||||
&& ./makeright init \
|
||||
; \
|
||||
fi
|
||||
|
||||
10
.github/workflows/buildRelease.yml
vendored
10
.github/workflows/buildRelease.yml
vendored
@@ -224,7 +224,13 @@ jobs:
|
||||
RELEASE_TAG: ${{ steps.tag.outputs.release_tag }}
|
||||
run: |
|
||||
mkdir -p /tmp/release_tars
|
||||
for OSARCH in "linux.x86_64:linux_amd64" "linux.aarch64:linux_arm64" "linux.armv7l:linux_arm_v7" ; \
|
||||
for OSARCH in \
|
||||
"linux.x86_64:linux_amd64" \
|
||||
"linux.aarch64:linux_arm64" \
|
||||
"linux.armv7l:linux_arm_v7" \
|
||||
"wsl1.x86_64:linux_amd64" \
|
||||
"wsl1.aarch64:linux_arm64" \
|
||||
; \
|
||||
do \
|
||||
pushd /tmp/docker_images/${OSARCH##*:}/usr/local/interlisp >/dev/null ; \
|
||||
/usr/bin/tar -c -z \
|
||||
@@ -246,6 +252,8 @@ jobs:
|
||||
artifacts:
|
||||
/tmp/release_tars/${{ steps.tag.outputs.release_tag }}-linux.x86_64.tgz,
|
||||
/tmp/release_tars/${{ steps.tag.outputs.release_tag }}-linux.aarch64.tgz,
|
||||
/tmp/release_tars/${{ steps.tag.outputs.release_tag }}-wsl1.x86_64.tgz,
|
||||
/tmp/release_tars/${{ steps.tag.outputs.release_tag }}-wsl1.aarch64.tgz,
|
||||
/tmp/release_tars/${{ steps.tag.outputs.release_tag }}-linux.armv7l.tgz
|
||||
tag: ${{ steps.tag.outputs.release_tag }}
|
||||
draft: ${{ needs.inputs.outputs.draft }}
|
||||
|
||||
29
bin/makefile-init-wsl1.aarch64
Normal file
29
bin/makefile-init-wsl1.aarch64
Normal file
@@ -0,0 +1,29 @@
|
||||
# Options for Windows System for Linux v1, aarch64 processor, X windows, for INIT processing
|
||||
|
||||
CC = gcc $(GCC_CFLAGS)
|
||||
#CC = clang $(CLANG_CFLAGS)
|
||||
|
||||
XFILES = $(OBJECTDIR)xmkicon.o \
|
||||
$(OBJECTDIR)xbbt.o \
|
||||
$(OBJECTDIR)dspif.o \
|
||||
$(OBJECTDIR)xinit.o \
|
||||
$(OBJECTDIR)xscroll.o \
|
||||
$(OBJECTDIR)xcursor.o \
|
||||
$(OBJECTDIR)xlspwin.o \
|
||||
$(OBJECTDIR)xrdopt.o \
|
||||
$(OBJECTDIR)xwinman.o
|
||||
|
||||
|
||||
XFLAGS = -DXWINDOW
|
||||
|
||||
# OPTFLAGS is normally -O2, for INIT we want unoptimized in case we need to debug it
|
||||
OPTFLAGS = -O0 -g
|
||||
DEBUGFLAGS =
|
||||
DFLAGS = $(DEBUGFLAGS) $(XFLAGS) -DRELEASE=$(RELEASE) -DNOVERSION -DINIT -D__wsl1__
|
||||
|
||||
LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm
|
||||
LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm
|
||||
|
||||
OBJECTDIR = ../$(RELEASENAME)/
|
||||
|
||||
default : ../$(OSARCHNAME)/ldeinit
|
||||
29
bin/makefile-init-wsl1.x86_64
Normal file
29
bin/makefile-init-wsl1.x86_64
Normal file
@@ -0,0 +1,29 @@
|
||||
# Options for Windows System for Linux v1, Intel x86_64 processor, X windows, for INIT processing
|
||||
|
||||
CC = gcc $(GCC_CFLAGS)
|
||||
#CC = clang $(CLANG_CFLAGS)
|
||||
|
||||
XFILES = $(OBJECTDIR)xmkicon.o \
|
||||
$(OBJECTDIR)xbbt.o \
|
||||
$(OBJECTDIR)dspif.o \
|
||||
$(OBJECTDIR)xinit.o \
|
||||
$(OBJECTDIR)xscroll.o \
|
||||
$(OBJECTDIR)xcursor.o \
|
||||
$(OBJECTDIR)xlspwin.o \
|
||||
$(OBJECTDIR)xrdopt.o \
|
||||
$(OBJECTDIR)xwinman.o
|
||||
|
||||
|
||||
XFLAGS = -DXWINDOW
|
||||
|
||||
# OPTFLAGS is normally -O2, for INIT we want unoptimized in case we need to debug it
|
||||
OPTFLAGS = -O0 -g
|
||||
DEBUGFLAGS =
|
||||
DFLAGS = $(DEBUGFLAGS) $(XFLAGS) -DRELEASE=$(RELEASE) -DNOVERSION -DINIT -D__wsl1__
|
||||
|
||||
LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm
|
||||
LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm
|
||||
|
||||
OBJECTDIR = ../$(RELEASENAME)/
|
||||
|
||||
default : ../$(OSARCHNAME)/ldeinit
|
||||
25
bin/makefile-wsl1.aarch64-sdl
Normal file
25
bin/makefile-wsl1.aarch64-sdl
Normal file
@@ -0,0 +1,25 @@
|
||||
# Options for Windows System for Linux v1, ARM64 and SDL
|
||||
|
||||
CC = gcc $(GCC_CFLAGS)
|
||||
#CC = clang $(CLANG_CFLAGS)
|
||||
|
||||
XFILES = $(OBJECTDIR)sdl.o
|
||||
|
||||
#
|
||||
# For SDL version 2
|
||||
# -DSDL=2 in SDLFLAGS and -lSDL2 in LDFLAGS
|
||||
# For SDL version 3
|
||||
# -DSDL=3 in SDLFLAGS and -lSDL3 in LDFLAGS
|
||||
#
|
||||
SDLFLAGS = -DSDL=2
|
||||
|
||||
# OPTFLAGS is normally -O2.
|
||||
OPTFLAGS = -O2 -g3
|
||||
DFLAGS = $(SDLFLAGS) -DRELEASE=$(RELEASE) -D__wsl1__
|
||||
|
||||
LDFLAGS = -lSDL2 -lm
|
||||
LDELDFLAGS =
|
||||
|
||||
OBJECTDIR = ../$(RELEASENAME)/
|
||||
|
||||
default : ../$(OSARCHNAME)/lde ../$(OSARCHNAME)/ldesdl
|
||||
27
bin/makefile-wsl1.aarch64-x
Normal file
27
bin/makefile-wsl1.aarch64-x
Normal file
@@ -0,0 +1,27 @@
|
||||
# Options for Windows System for Linux v1, aarch64 and X-Window
|
||||
|
||||
CC = gcc $(GCC_CFLAGS)
|
||||
#CC = clang $(CLANG_CFLAGS)
|
||||
|
||||
XFILES = $(OBJECTDIR)xmkicon.o \
|
||||
$(OBJECTDIR)xbbt.o \
|
||||
$(OBJECTDIR)dspif.o \
|
||||
$(OBJECTDIR)xinit.o \
|
||||
$(OBJECTDIR)xscroll.o \
|
||||
$(OBJECTDIR)xcursor.o \
|
||||
$(OBJECTDIR)xlspwin.o \
|
||||
$(OBJECTDIR)xrdopt.o \
|
||||
$(OBJECTDIR)xwinman.o
|
||||
|
||||
XFLAGS = -DXWINDOW
|
||||
|
||||
# OPTFLAGS is normally -O2.
|
||||
OPTFLAGS = -O2 -g3
|
||||
DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE) -D__wsl1__
|
||||
|
||||
LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm
|
||||
LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm
|
||||
|
||||
OBJECTDIR = ../$(RELEASENAME)/
|
||||
|
||||
default : ../$(OSARCHNAME)/lde ../$(OSARCHNAME)/ldex
|
||||
25
bin/makefile-wsl1.x86_64-sdl
Normal file
25
bin/makefile-wsl1.x86_64-sdl
Normal file
@@ -0,0 +1,25 @@
|
||||
# Options for Windows System for Linux v1, Intel x86_64 and SDL
|
||||
|
||||
CC = gcc -m64 $(GCC_CFLAGS)
|
||||
# CC = clang -m64 $(CLANG_CFLAGS)
|
||||
|
||||
XFILES = $(OBJECTDIR)sdl.o
|
||||
|
||||
#
|
||||
# For SDL version 2
|
||||
# -DSDL=2 in XFLAGS and -lSDL2 in LDFLAGS
|
||||
# For SDL version 3
|
||||
# -DSDL=3 in XFLAGS and -lSDL3 in LDFLAGS
|
||||
#
|
||||
XFLAGS = -DSDL=2
|
||||
|
||||
# OPTFLAGS is normally -O2.
|
||||
OPTFLAGS = -O2 -g3
|
||||
DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE) -D__wsl1__
|
||||
|
||||
LDFLAGS = -lm -lSDL2
|
||||
LDELDFLAGS =
|
||||
|
||||
OBJECTDIR = ../$(RELEASENAME)/
|
||||
|
||||
default : ../$(OSARCHNAME)/lde ../$(OSARCHNAME)/ldesdl
|
||||
28
bin/makefile-wsl1.x86_64-x
Normal file
28
bin/makefile-wsl1.x86_64-x
Normal file
@@ -0,0 +1,28 @@
|
||||
# Options for Windows System for Linux v1, Intel x86_64 and X-Window
|
||||
|
||||
CC = gcc -m64 $(GCC_CFLAGS)
|
||||
# CC = clang -m64 $(CLANG_CFLAGS)
|
||||
|
||||
XFILES = $(OBJECTDIR)xmkicon.o \
|
||||
$(OBJECTDIR)xbbt.o \
|
||||
$(OBJECTDIR)dspif.o \
|
||||
$(OBJECTDIR)xinit.o \
|
||||
$(OBJECTDIR)xscroll.o \
|
||||
$(OBJECTDIR)xcursor.o \
|
||||
$(OBJECTDIR)xlspwin.o \
|
||||
$(OBJECTDIR)xrdopt.o \
|
||||
$(OBJECTDIR)xwinman.o
|
||||
|
||||
|
||||
XFLAGS = -DXWINDOW
|
||||
|
||||
# OPTFLAGS is normally -O2.
|
||||
OPTFLAGS = -O2 -g3
|
||||
DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE) -D__wsl1__
|
||||
|
||||
LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm
|
||||
LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm
|
||||
|
||||
OBJECTDIR = ../$(RELEASENAME)/
|
||||
|
||||
default : ../$(OSARCHNAME)/lde ../$(OSARCHNAME)/ldex
|
||||
@@ -8,11 +8,14 @@ case "$os" in
|
||||
*-*-solaris2*) echo sunos5 ;;
|
||||
alpha-dec-osf1) echo osf1 ;;
|
||||
*-apple-darwin*) echo darwin ;;
|
||||
*-*-linux*) echo linux ;;
|
||||
*-*-linux*)
|
||||
if [ -n "${WSL_DISTRO_NAME}" ] && [ -z "${WSL_INTEROP}" ];
|
||||
then echo wsl1; else echo linux; fi ;;
|
||||
*-*-openbsd*) echo openbsd ;;
|
||||
*-*-freebsd*) echo freebsd ;;
|
||||
*-*-cygwin*) echo cygwin ;;
|
||||
*-*-haiku*) echo haiku ;;
|
||||
*-microsoft-wsl1) echo wsl1 ;;
|
||||
esac
|
||||
### Don't leave the variable set.
|
||||
unset os
|
||||
|
||||
@@ -38,13 +38,23 @@
|
||||
# define MAIKO_OS_DETECTED 1
|
||||
#endif
|
||||
|
||||
#ifdef __linux__
|
||||
#if defined(__linux__) && !defined(__wsl1__)
|
||||
# define MAIKO_OS_LINUX 1
|
||||
# define MAIKO_OS_NAME "Linux"
|
||||
# define MAIKO_OS_UNIX_LIKE 1
|
||||
# define MAIKO_OS_DETECTED 1
|
||||
#endif
|
||||
|
||||
#if defined(__linux__) && defined(__wsl1__)
|
||||
# define MAIKO_OS_LINUX 1
|
||||
# define MAIKO_OS_WSL1 1
|
||||
# define MAIKO_OS_NAME "Windows System for Linux v1"
|
||||
# define MAIKO_OS_UNIX_LIKE 1
|
||||
# define MAIKO_EMULATE_TIMER_INTERRUPTS 1
|
||||
# define MAIKO_EMULATE_ASYNC_INTERRUPTS 1
|
||||
# define MAIKO_OS_DETECTED 1
|
||||
#endif
|
||||
|
||||
#ifdef __NetBSD__
|
||||
# define MAIKO_OS_NETBSD 1
|
||||
# define MAIKO_OS_NAME "NetBSD"
|
||||
|
||||
Reference in New Issue
Block a user