From 6d171bff1d2d868ac6ffd744ed0d45d5812cf8a4 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Tue, 3 Jun 2025 18:54:15 -0700 Subject: [PATCH] Create/update additional makefiles for building maiko for WSL1. Update buildRelease workflow and assicated Dockerfile to build the WSL1 variants along wih standard linux variants. --- .github/workflows/Dockerfile_maiko | 13 +++++++++++-- .github/workflows/buildRelease.yml | 10 +++++++++- bin/makefile-init-wsl1.aarch64 | 29 +++++++++++++++++++++++++++++ bin/makefile-init-wsl1.x86_64 | 29 +++++++++++++++++++++++++++++ bin/makefile-wsl1.aarch64-sdl | 25 +++++++++++++++++++++++++ bin/makefile-wsl1.aarch64-x | 27 +++++++++++++++++++++++++++ bin/makefile-wsl1.x86_64-sdl | 29 ++++++++++++++++++++++++++++- bin/makefile-wsl1.x86_64-x | 2 +- bin/osversion | 3 --- 9 files changed, 159 insertions(+), 8 deletions(-) create mode 100644 bin/makefile-init-wsl1.aarch64 create mode 100644 bin/makefile-init-wsl1.x86_64 create mode 100644 bin/makefile-wsl1.aarch64-sdl create mode 100644 bin/makefile-wsl1.aarch64-x diff --git a/.github/workflows/Dockerfile_maiko b/.github/workflows/Dockerfile_maiko index 5f9cd45..b7a52b9 100755 --- a/.github/workflows/Dockerfile_maiko +++ b/.github/workflows/Dockerfile_maiko @@ -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 arch="$(./machinetype)" \ + && if [ "$arch" = "x86_64" ] || [ "$arch" = "aarch64" ]; then \ + cd ${INSTALL_LOCATION}/bin \ + && echo "echo #!/bin/sh" > osversion \ + && echo "echo wsl1" >> osversion \ + && ./makeright x cleanup \ + && ./makeright x \ + && ./makeright init; \ + fi diff --git a/.github/workflows/buildRelease.yml b/.github/workflows/buildRelease.yml index becc4d8..ce99828 100644 --- a/.github/workflows/buildRelease.yml +++ b/.github/workflows/buildRelease.yml @@ -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 }} diff --git a/bin/makefile-init-wsl1.aarch64 b/bin/makefile-init-wsl1.aarch64 new file mode 100644 index 0000000..5362d82 --- /dev/null +++ b/bin/makefile-init-wsl1.aarch64 @@ -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 diff --git a/bin/makefile-init-wsl1.x86_64 b/bin/makefile-init-wsl1.x86_64 new file mode 100644 index 0000000..182631f --- /dev/null +++ b/bin/makefile-init-wsl1.x86_64 @@ -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 diff --git a/bin/makefile-wsl1.aarch64-sdl b/bin/makefile-wsl1.aarch64-sdl new file mode 100644 index 0000000..94b719c --- /dev/null +++ b/bin/makefile-wsl1.aarch64-sdl @@ -0,0 +1,25 @@ +# Options for Linux, 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) + +LDFLAGS = -lSDL2 -lm +LDELDFLAGS = + +OBJECTDIR = ../$(RELEASENAME)/ + +default : ../$(OSARCHNAME)/lde ../$(OSARCHNAME)/ldesdl diff --git a/bin/makefile-wsl1.aarch64-x b/bin/makefile-wsl1.aarch64-x new file mode 100644 index 0000000..15964b5 --- /dev/null +++ b/bin/makefile-wsl1.aarch64-x @@ -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 diff --git a/bin/makefile-wsl1.x86_64-sdl b/bin/makefile-wsl1.x86_64-sdl index ccf98c3..765b562 100644 --- a/bin/makefile-wsl1.x86_64-sdl +++ b/bin/makefile-wsl1.x86_64-sdl @@ -1,3 +1,30 @@ +# Options for Windows System for Linux v1, Intel x86_64 and SDL + +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 # Options for Linux, Intel x86_64 and SDL CC = gcc -m64 $(GCC_CFLAGS) @@ -15,7 +42,7 @@ XFLAGS = -DSDL=2 # OPTFLAGS is normally -O2. OPTFLAGS = -O2 -g3 -DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE) +DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE) -D__wsl1__ LDFLAGS = -lm -lSDL2 LDELDFLAGS = diff --git a/bin/makefile-wsl1.x86_64-x b/bin/makefile-wsl1.x86_64-x index 4e80252..fe1b6c0 100644 --- a/bin/makefile-wsl1.x86_64-x +++ b/bin/makefile-wsl1.x86_64-x @@ -1,4 +1,4 @@ -# Options for Linux, Intel x86_64 and X-Window +# Options for Windows System for Linux v1, Intel x86_64 and X-Window CC = gcc -m64 $(GCC_CFLAGS) # CC = clang -m64 $(CLANG_CFLAGS) diff --git a/bin/osversion b/bin/osversion index 6d6cf21..b51d919 100755 --- a/bin/osversion +++ b/bin/osversion @@ -9,9 +9,6 @@ case "$os" in alpha-dec-osf1) echo osf1 ;; *-apple-darwin*) echo darwin ;; *-*-linux*) - echo d"${WSL_DISTRO_NAME}"d - echo i"${WSL_INTEROP}"i - if [ -n "${WSL_DISTRO_NAME}" ] && [ -z "${WSL_INTEROP}" ]; then echo wsl1; else echo linux; fi ;; *-*-openbsd*) echo openbsd ;;