From c821a73ed4b6c9e139a3e0513031e2c6f6e540bf Mon Sep 17 00:00:00 2001 From: Nick Briggs Date: Fri, 20 Feb 2026 15:52:29 -0800 Subject: [PATCH 1/6] Updates build environment to Ubuntu Linux 24.04 --- .github/workflows/Dockerfile_builder | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/Dockerfile_builder b/.github/workflows/Dockerfile_builder index 5988ce13..cb6c48fd 100755 --- a/.github/workflows/Dockerfile_builder +++ b/.github/workflows/Dockerfile_builder @@ -8,11 +8,11 @@ # # ****************************************************************************** -FROM ubuntu:22.04 +FROM ubuntu:24.04 SHELL ["/bin/bash", "-c"] USER root:root # Install build tools -RUN apt-get update && apt-get install -y make clang libx11-dev gcc +RUN apt-get update && apt-get install -y make clang libx11-dev libbsd-dev libpcap-dev gcc USER root WORKDIR /root ENTRYPOINT /bin/bash From 97b84d4117fc082cfd91e2b13a8def0fdb6acca6 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 1 Mar 2026 03:00:08 -0800 Subject: [PATCH 2/6] Add libbsd to ld library search for all makefile-linux* and makefile-init-linux*. Add libbsd to MAIKO_LIBRARIES (where appropriate) in CMakeLists.txt. This will support building maiko on Ubuntu 22.04 and Debian 12, where strlcat is found only in libbsd. For Ubuntu 24.04 and beyond and Debian 13 and beyond, strlcat is now in glibc (>2.38). --- CMakeLists.txt | 7 ++++++- bin/makefile-init-linux.aarch64 | 4 ++-- bin/makefile-init-linux.x86_64 | 4 ++-- bin/makefile-init-wsl1.aarch64 | 4 ++-- bin/makefile-init-wsl1.x86_64 | 4 ++-- bin/makefile-linux.386-sdl | 4 ++-- bin/makefile-linux.386-x | 4 ++-- bin/makefile-linux.aarch64-sdl | 4 ++-- bin/makefile-linux.aarch64-x | 4 ++-- bin/makefile-linux.armv7l-sdl | 4 ++-- bin/makefile-linux.armv7l-x | 4 ++-- bin/makefile-linux.x86_64-sdl | 4 ++-- bin/makefile-linux.x86_64-x | 4 ++-- bin/makefile-wsl1.aarch64-sdl | 4 ++-- bin/makefile-wsl1.aarch64-x | 4 ++-- bin/makefile-wsl1.x86_64-sdl | 4 ++-- bin/makefile-wsl1.x86_64-x | 4 ++-- 17 files changed, 38 insertions(+), 33 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index eb1f8118..8c747c31 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,5 @@ CMAKE_MINIMUM_REQUIRED(VERSION 3.15) PROJECT(maiko C) - SET(CMAKE_EXPORT_COMPILE_COMMANDS ON) SET(CMAKE_C_STANDARD 99) @@ -37,6 +36,11 @@ IF(NEED_LIB_M) SET(MAIKO_LIBRARIES m) ENDIF() +CHECK_LIBRARY_EXISTS(bsd strlcat "" NEED_LIB_BSD) +IF(NEED_LIB_BSD) + SET(MAIKO_LIBRARIES ${MAIKO_LIBRARIES} bsd) +ENDIF() + SET (MAIKO_RELEASE 351 CACHE STRING "Release version to build. Release: 115, 200, 201, 210, 300, 350, 351") SET_PROPERTY(CACHE MAIKO_RELEASE PROPERTY STRINGS 115 200 201 210 300 350 351) @@ -448,6 +452,7 @@ ADD_CUSTOM_COMMAND(OUTPUT vdate.c ADD_EXECUTABLE(lde src/ldeboot.c src/unixfork.c) TARGET_COMPILE_DEFINITIONS(lde PRIVATE ${MAIKO_DEFINITIONS}) TARGET_INCLUDE_DIRECTORIES(lde PRIVATE inc) +TARGET_LINK_LIBRARIES(lde ${MAIKO_LIBRARIES}) IF(MAIKO_DISPLAY_X11) # Tell it that the X11 launcher is available. TARGET_COMPILE_DEFINITIONS(lde PRIVATE ${MAIKO_DISPLAY_X11_DEFINITIONS}) diff --git a/bin/makefile-init-linux.aarch64 b/bin/makefile-init-linux.aarch64 index 52ab52bc..5b4ce1d9 100644 --- a/bin/makefile-init-linux.aarch64 +++ b/bin/makefile-init-linux.aarch64 @@ -21,8 +21,8 @@ OPTFLAGS = -O0 -g DEBUGFLAGS = DFLAGS = $(DEBUGFLAGS) $(XFLAGS) -DRELEASE=$(RELEASE) -DNOVERSION -DINIT -LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm -LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm +LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm -lbsd +LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm -lbsd OBJECTDIR = ../$(RELEASENAME)/ diff --git a/bin/makefile-init-linux.x86_64 b/bin/makefile-init-linux.x86_64 index 8eeb2084..ae6e2cfe 100644 --- a/bin/makefile-init-linux.x86_64 +++ b/bin/makefile-init-linux.x86_64 @@ -21,8 +21,8 @@ OPTFLAGS = -O0 -g DEBUGFLAGS = DFLAGS = $(DEBUGFLAGS) $(XFLAGS) -DRELEASE=$(RELEASE) -DNOVERSION -DINIT -LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm -LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm +LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm -lbsd +LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm -lbsd OBJECTDIR = ../$(RELEASENAME)/ diff --git a/bin/makefile-init-wsl1.aarch64 b/bin/makefile-init-wsl1.aarch64 index 5362d82f..7fb5fce3 100644 --- a/bin/makefile-init-wsl1.aarch64 +++ b/bin/makefile-init-wsl1.aarch64 @@ -21,8 +21,8 @@ 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 +LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm -lbsd +LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm -lbsd OBJECTDIR = ../$(RELEASENAME)/ diff --git a/bin/makefile-init-wsl1.x86_64 b/bin/makefile-init-wsl1.x86_64 index 182631f8..a35a1954 100644 --- a/bin/makefile-init-wsl1.x86_64 +++ b/bin/makefile-init-wsl1.x86_64 @@ -21,8 +21,8 @@ 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 +LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm -lbsd +LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm -lbsd OBJECTDIR = ../$(RELEASENAME)/ diff --git a/bin/makefile-linux.386-sdl b/bin/makefile-linux.386-sdl index 733f3c7e..40f2706f 100644 --- a/bin/makefile-linux.386-sdl +++ b/bin/makefile-linux.386-sdl @@ -17,8 +17,8 @@ XFLAGS = -DSDL=2 OPTFLAGS = -O2 -g3 DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE) -LDFLAGS = -lm -lSDL2 -LDELDFLAGS = +LDFLAGS = -lm -lSDL2 -lbsd +LDELDFLAGS = -lbsd OBJECTDIR = ../$(RELEASENAME)/ diff --git a/bin/makefile-linux.386-x b/bin/makefile-linux.386-x index e733b9ac..62c0bc4c 100644 --- a/bin/makefile-linux.386-x +++ b/bin/makefile-linux.386-x @@ -19,8 +19,8 @@ XFLAGS = -DXWINDOW OPTFLAGS = -O2 -g3 DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE) -LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm -LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm +LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm -lbsd +LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm -lbsd OBJECTDIR = ../$(RELEASENAME)/ diff --git a/bin/makefile-linux.aarch64-sdl b/bin/makefile-linux.aarch64-sdl index 94b719c6..6d450be3 100644 --- a/bin/makefile-linux.aarch64-sdl +++ b/bin/makefile-linux.aarch64-sdl @@ -17,8 +17,8 @@ SDLFLAGS = -DSDL=2 OPTFLAGS = -O2 -g3 DFLAGS = $(SDLFLAGS) -DRELEASE=$(RELEASE) -LDFLAGS = -lSDL2 -lm -LDELDFLAGS = +LDFLAGS = -lSDL2 -lm -lbsd +LDELDFLAGS = -lbsd OBJECTDIR = ../$(RELEASENAME)/ diff --git a/bin/makefile-linux.aarch64-x b/bin/makefile-linux.aarch64-x index ff0b349f..a0012099 100644 --- a/bin/makefile-linux.aarch64-x +++ b/bin/makefile-linux.aarch64-x @@ -19,8 +19,8 @@ XFLAGS = -DXWINDOW OPTFLAGS = -O2 -g3 DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE) -LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm -LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm +LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm -lbsd +LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm -lbsd OBJECTDIR = ../$(RELEASENAME)/ diff --git a/bin/makefile-linux.armv7l-sdl b/bin/makefile-linux.armv7l-sdl index da9c4ccd..86e4f474 100644 --- a/bin/makefile-linux.armv7l-sdl +++ b/bin/makefile-linux.armv7l-sdl @@ -17,8 +17,8 @@ XFLAGS = -DSDL=2 OPTFLAGS = -O2 -g3 DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE) -LDFLAGS = -lm -lSDL2 -LDELDFLAGS = +LDFLAGS = -lm -lSDL2 -lbsd +LDELDFLAGS = -lbsd OBJECTDIR = ../$(RELEASENAME)/ diff --git a/bin/makefile-linux.armv7l-x b/bin/makefile-linux.armv7l-x index ee283b43..1e3740cf 100644 --- a/bin/makefile-linux.armv7l-x +++ b/bin/makefile-linux.armv7l-x @@ -19,8 +19,8 @@ XFLAGS = -DXWINDOW OPTFLAGS = -O2 -g3 DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE) -LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm -LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm +LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm -lbsd +LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm -lbsd OBJECTDIR = ../$(RELEASENAME)/ diff --git a/bin/makefile-linux.x86_64-sdl b/bin/makefile-linux.x86_64-sdl index ccf98c34..c57dca0c 100644 --- a/bin/makefile-linux.x86_64-sdl +++ b/bin/makefile-linux.x86_64-sdl @@ -17,8 +17,8 @@ XFLAGS = -DSDL=2 OPTFLAGS = -O2 -g3 DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE) -LDFLAGS = -lm -lSDL2 -LDELDFLAGS = +LDFLAGS = -lm -lSDL2 -lbsd +LDELDFLAGS = -lbsd OBJECTDIR = ../$(RELEASENAME)/ diff --git a/bin/makefile-linux.x86_64-x b/bin/makefile-linux.x86_64-x index e9225aac..5cb63bb0 100644 --- a/bin/makefile-linux.x86_64-x +++ b/bin/makefile-linux.x86_64-x @@ -20,8 +20,8 @@ XFLAGS = -DXWINDOW OPTFLAGS = -O2 -g3 DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE) -LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm -LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm +LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm -lbsd +LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm -lbsd OBJECTDIR = ../$(RELEASENAME)/ diff --git a/bin/makefile-wsl1.aarch64-sdl b/bin/makefile-wsl1.aarch64-sdl index f3ce3cac..7e756e94 100644 --- a/bin/makefile-wsl1.aarch64-sdl +++ b/bin/makefile-wsl1.aarch64-sdl @@ -17,8 +17,8 @@ SDLFLAGS = -DSDL=2 OPTFLAGS = -O2 -g3 DFLAGS = $(SDLFLAGS) -DRELEASE=$(RELEASE) -D__wsl1__ -LDFLAGS = -lSDL2 -lm -LDELDFLAGS = +LDFLAGS = -lSDL2 -lm -lbsd +LDELDFLAGS = -lbsd OBJECTDIR = ../$(RELEASENAME)/ diff --git a/bin/makefile-wsl1.aarch64-x b/bin/makefile-wsl1.aarch64-x index 15964b5e..fb578479 100644 --- a/bin/makefile-wsl1.aarch64-x +++ b/bin/makefile-wsl1.aarch64-x @@ -19,8 +19,8 @@ XFLAGS = -DXWINDOW 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 +LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm -lbsd +LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm -lbsd OBJECTDIR = ../$(RELEASENAME)/ diff --git a/bin/makefile-wsl1.x86_64-sdl b/bin/makefile-wsl1.x86_64-sdl index ec16b95b..5bad16ac 100644 --- a/bin/makefile-wsl1.x86_64-sdl +++ b/bin/makefile-wsl1.x86_64-sdl @@ -17,8 +17,8 @@ XFLAGS = -DSDL=2 OPTFLAGS = -O2 -g3 DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE) -D__wsl1__ -LDFLAGS = -lm -lSDL2 -LDELDFLAGS = +LDFLAGS = -lm -lSDL2 -lbsd +LDELDFLAGS = -lbsd OBJECTDIR = ../$(RELEASENAME)/ diff --git a/bin/makefile-wsl1.x86_64-x b/bin/makefile-wsl1.x86_64-x index fe1b6c0e..6c124338 100644 --- a/bin/makefile-wsl1.x86_64-x +++ b/bin/makefile-wsl1.x86_64-x @@ -20,8 +20,8 @@ XFLAGS = -DXWINDOW 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 +LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm -lbsd +LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm -lbsd OBJECTDIR = ../$(RELEASENAME)/ From f4021ef26824c0dd73ecb9e3ab29075110a1fac8 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 1 Mar 2026 03:21:04 -0800 Subject: [PATCH 3/6] Move builder image back to 22.04 so that exe's that we build can run on systems with glibc <2.38 (e.g., Ubuntu 22.04 and Debian 12). --- .github/workflows/Dockerfile_builder | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/Dockerfile_builder b/.github/workflows/Dockerfile_builder index cb6c48fd..87ff0a57 100755 --- a/.github/workflows/Dockerfile_builder +++ b/.github/workflows/Dockerfile_builder @@ -8,7 +8,7 @@ # # ****************************************************************************** -FROM ubuntu:24.04 +FROM ubuntu:22.04 SHELL ["/bin/bash", "-c"] USER root:root # Install build tools From fcbcb2c6b82f65c2acd8743cd99faa9169457a52 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Mon, 9 Mar 2026 00:45:09 -0700 Subject: [PATCH 4/6] Updating all linux makefiles to use the libbsd-overlay scheme properly --- bin/makefile-init-linux.aarch64 | 10 +++++++--- bin/makefile-init-linux.x86_64 | 10 +++++++--- bin/makefile-linux-check-prerequisites | 20 ++++++++++++++++++++ bin/makefile-linux.386-sdl | 10 +++++++--- bin/makefile-linux.386-x | 10 +++++++--- bin/makefile-linux.aarch64-sdl | 10 +++++++--- bin/makefile-linux.aarch64-x | 10 +++++++--- bin/makefile-linux.armv7l-sdl | 10 +++++++--- bin/makefile-linux.armv7l-x | 10 +++++++--- bin/makefile-linux.x86_64-sdl | 10 +++++++--- bin/makefile-linux.x86_64-x | 10 +++++++--- 11 files changed, 90 insertions(+), 30 deletions(-) create mode 100644 bin/makefile-linux-check-prerequisites diff --git a/bin/makefile-init-linux.aarch64 b/bin/makefile-init-linux.aarch64 index 5b4ce1d9..5ba7fd27 100644 --- a/bin/makefile-init-linux.aarch64 +++ b/bin/makefile-init-linux.aarch64 @@ -16,13 +16,17 @@ XFILES = $(OBJECTDIR)xmkicon.o \ XFLAGS = -DXWINDOW +include makefile-linux-check-prerequisites +BSD_CFLAGS = $(shell pkg-config --cflags libbsd-overlay) +BSD_LDFLAGS = $(shell pkg-config --libs libbsd-overlay) + # 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 +DFLAGS = $(DEBUGFLAGS) $(XFLAGS) -DRELEASE=$(RELEASE) -DNOVERSION -DINIT $(BSD_CFLAGS) -LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm -lbsd -LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm -lbsd +LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm $(BSD_LDFLAGS) +LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm $(BSD_LDFLAGS) OBJECTDIR = ../$(RELEASENAME)/ diff --git a/bin/makefile-init-linux.x86_64 b/bin/makefile-init-linux.x86_64 index ae6e2cfe..14f142ea 100644 --- a/bin/makefile-init-linux.x86_64 +++ b/bin/makefile-init-linux.x86_64 @@ -16,13 +16,17 @@ XFILES = $(OBJECTDIR)xmkicon.o \ XFLAGS = -DXWINDOW +include makefile-linux-check-prerequisites +BSD_CFLAGS = $(shell pkg-config --cflags libbsd-overlay) +BSD_LDFLAGS = $(shell pkg-config --libs libbsd-overlay) + # 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 +DFLAGS = $(DEBUGFLAGS) $(XFLAGS) -DRELEASE=$(RELEASE) -DNOVERSION -DINIT $(BSD_CFLAGS) -LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm -lbsd -LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm -lbsd +LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm $(BSD_LDFLAGS) +LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm $(BSD_LDFLAGS) OBJECTDIR = ../$(RELEASENAME)/ diff --git a/bin/makefile-linux-check-prerequisites b/bin/makefile-linux-check-prerequisites new file mode 100644 index 00000000..352fc557 --- /dev/null +++ b/bin/makefile-linux-check-prerequisites @@ -0,0 +1,20 @@ +# Check that pkg-config is available and that the libbsd-dev package is installed +# If one of these is missing, error out +# FGH 2026-03-08 +ifneq ($(MAKECMDGOALS),clean) + ifneq ($(MAKECMDGOALS),cleanup) + + CHK_PKG_CONFIG := $(shell command -v pkg-config) + ifeq ($(CHK_PKG_CONFIG),) + # pkg-config not found, print an error + $(error "pkg-config not found. Please install it to build this project.") + endif + + CHK_LIBBSD_DEV := $(shell pkg-config --exists libbsd-overlay && echo true) + ifneq ($(CHK_LIBBSD_DEV),true) + $(error "libbsd-dev (or libbsd-devel) package not found. Please install it to build this project.") + endif + endif +endif + + diff --git a/bin/makefile-linux.386-sdl b/bin/makefile-linux.386-sdl index 40f2706f..f47ea443 100644 --- a/bin/makefile-linux.386-sdl +++ b/bin/makefile-linux.386-sdl @@ -13,12 +13,16 @@ XFILES = $(OBJECTDIR)sdl.o # XFLAGS = -DSDL=2 +include makefile-linux-check-prerequisites +BSD_CFLAGS = $(shell pkg-config --cflags libbsd-overlay) +BSD_LDFLAGS = $(shell pkg-config --libs libbsd-overlay) + # OPTFLAGS is normally -O2. OPTFLAGS = -O2 -g3 -DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE) +DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE) $(BSD_CFLAGS) -LDFLAGS = -lm -lSDL2 -lbsd -LDELDFLAGS = -lbsd +LDFLAGS = -lm -lSDL2 $(BSD_LDFLAGS) +LDELDFLAGS = $(BSD_LDFLAGS) OBJECTDIR = ../$(RELEASENAME)/ diff --git a/bin/makefile-linux.386-x b/bin/makefile-linux.386-x index 62c0bc4c..8c97572a 100644 --- a/bin/makefile-linux.386-x +++ b/bin/makefile-linux.386-x @@ -15,12 +15,16 @@ XFILES = $(OBJECTDIR)xmkicon.o \ XFLAGS = -DXWINDOW +include makefile-linux-check-prerequisites +BSD_CFLAGS = $(shell pkg-config --cflags libbsd-overlay) +BSD_LDFLAGS = $(shell pkg-config --libs libbsd-overlay) + # OPTFLAGS is normally -O2. OPTFLAGS = -O2 -g3 -DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE) +DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE) $(BSD_CFLAGS) -LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm -lbsd -LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm -lbsd +LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm $(BSD_LDFLAGS) +LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm $(BSD_LDFLAGS) OBJECTDIR = ../$(RELEASENAME)/ diff --git a/bin/makefile-linux.aarch64-sdl b/bin/makefile-linux.aarch64-sdl index 6d450be3..2559f214 100644 --- a/bin/makefile-linux.aarch64-sdl +++ b/bin/makefile-linux.aarch64-sdl @@ -13,12 +13,16 @@ XFILES = $(OBJECTDIR)sdl.o # SDLFLAGS = -DSDL=2 +include makefile-linux-check-prerequisites +BSD_CFLAGS = $(shell pkg-config --cflags libbsd-overlay) +BSD_LDFLAGS = $(shell pkg-config --libs libbsd-overlay) + # OPTFLAGS is normally -O2. OPTFLAGS = -O2 -g3 -DFLAGS = $(SDLFLAGS) -DRELEASE=$(RELEASE) +DFLAGS = $(SDLFLAGS) -DRELEASE=$(RELEASE) $(BSD_CFLAGS) -LDFLAGS = -lSDL2 -lm -lbsd -LDELDFLAGS = -lbsd +LDFLAGS = -lSDL2 -lm $(BSD_LDFLAGS) +LDELDFLAGS = $(BSD_LDFLAGS) OBJECTDIR = ../$(RELEASENAME)/ diff --git a/bin/makefile-linux.aarch64-x b/bin/makefile-linux.aarch64-x index a0012099..99a58caf 100644 --- a/bin/makefile-linux.aarch64-x +++ b/bin/makefile-linux.aarch64-x @@ -15,12 +15,16 @@ XFILES = $(OBJECTDIR)xmkicon.o \ XFLAGS = -DXWINDOW +include makefile-linux-check-prerequisites +BSD_CFLAGS = $(shell pkg-config --cflags libbsd-overlay) +BSD_LDFLAGS = $(shell pkg-config --libs libbsd-overlay) + # OPTFLAGS is normally -O2. OPTFLAGS = -O2 -g3 -DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE) +DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE) $(BSD_CFLAGS) -LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm -lbsd -LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm -lbsd +LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm $(BSD_LDFLAGS) +LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm $(BSD_LDFLAGS) OBJECTDIR = ../$(RELEASENAME)/ diff --git a/bin/makefile-linux.armv7l-sdl b/bin/makefile-linux.armv7l-sdl index 86e4f474..47a87a61 100644 --- a/bin/makefile-linux.armv7l-sdl +++ b/bin/makefile-linux.armv7l-sdl @@ -13,12 +13,16 @@ XFILES = $(OBJECTDIR)sdl.o # XFLAGS = -DSDL=2 +include makefile-linux-check-prerequisites +BSD_CFLAGS = $(shell pkg-config --cflags libbsd-overlay) +BSD_LDFLAGS = $(shell pkg-config --libs libbsd-overlay) + # OPTFLAGS is normally -O2. OPTFLAGS = -O2 -g3 -DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE) +DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE) $(BSD_CFLAGS) -LDFLAGS = -lm -lSDL2 -lbsd -LDELDFLAGS = -lbsd +LDFLAGS = -lm -lSDL2 $(BSD_LDFLAGS) +LDELDFLAGS = $(BSD_LDFLAGS) OBJECTDIR = ../$(RELEASENAME)/ diff --git a/bin/makefile-linux.armv7l-x b/bin/makefile-linux.armv7l-x index 1e3740cf..fa787fb7 100644 --- a/bin/makefile-linux.armv7l-x +++ b/bin/makefile-linux.armv7l-x @@ -15,12 +15,16 @@ XFILES = $(OBJECTDIR)xmkicon.o \ XFLAGS = -DXWINDOW +include makefile-linux-check-prerequisites +BSD_CFLAGS = $(shell pkg-config --cflags libbsd-overlay) +BSD_LDFLAGS = $(shell pkg-config --libs libbsd-overlay) + # OPTFLAGS is normally -O2. OPTFLAGS = -O2 -g3 -DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE) +DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE) $(BSD_CFLAGS) -LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm -lbsd -LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm -lbsd +LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm $(BSD_LDFLAGS) +LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm $(BSD_LDFLAGS) OBJECTDIR = ../$(RELEASENAME)/ diff --git a/bin/makefile-linux.x86_64-sdl b/bin/makefile-linux.x86_64-sdl index c57dca0c..640a59c5 100644 --- a/bin/makefile-linux.x86_64-sdl +++ b/bin/makefile-linux.x86_64-sdl @@ -13,12 +13,16 @@ XFILES = $(OBJECTDIR)sdl.o # XFLAGS = -DSDL=2 +include makefile-linux-check-prerequisites +BSD_CFLAGS = $(shell pkg-config --cflags libbsd-overlay) +BSD_LDFLAGS = $(shell pkg-config --libs libbsd-overlay) + # OPTFLAGS is normally -O2. OPTFLAGS = -O2 -g3 -DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE) +DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE) $(BSD_CFLAGS) -LDFLAGS = -lm -lSDL2 -lbsd -LDELDFLAGS = -lbsd +LDFLAGS = -lm -lSDL2 $(BSD_LDFLAGS) +LDELDFLAGS = $(BSD_LDFLAGS) OBJECTDIR = ../$(RELEASENAME)/ diff --git a/bin/makefile-linux.x86_64-x b/bin/makefile-linux.x86_64-x index 5cb63bb0..87016b47 100644 --- a/bin/makefile-linux.x86_64-x +++ b/bin/makefile-linux.x86_64-x @@ -16,12 +16,16 @@ XFILES = $(OBJECTDIR)xmkicon.o \ XFLAGS = -DXWINDOW +include makefile-linux-check-prerequisites +BSD_CFLAGS = $(shell pkg-config --cflags libbsd-overlay) +BSD_LDFLAGS = $(shell pkg-config --libs libbsd-overlay) + # OPTFLAGS is normally -O2. OPTFLAGS = -O2 -g3 -DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE) +DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE) $(BSD_CFLAGS) -LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm -lbsd -LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm -lbsd +LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm $(BSD_LDFLAGS) +LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm $(BSD_LDFLAGS) OBJECTDIR = ../$(RELEASENAME)/ From 41cad3e499084306a65a54935704a4ac3c15bb4f Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Mon, 9 Mar 2026 18:11:23 -0700 Subject: [PATCH 5/6] Update all makefiles for linux to use (by include) a common base makefile as well as common makefiles for X and sdl. These included makefiles have the name linux-*.mk. Updated all linux makefiles to use the libbsd-overlay package, using pkg-config to set the appropriate flags. Updated CMakelists to also use the libbsd-overlay package via pkgconfig for Linux only. Finally added install targets to the CMakelists file so that cmake --install . will place the lde binaries into the appropriate directory in maiko as the makefiles currently do. --- CMakeLists.txt | 25 ++++++++++++++-- bin/linux-common.mk | 15 ++++++++++ ...ux-check-prerequisites => linux-libbsd.mk} | 4 +++ bin/linux-sdl.mk | 14 +++++++++ bin/linux-x.mk | 17 +++++++++++ bin/makefile-init-linux.aarch64 | 29 +++--------------- bin/makefile-init-linux.x86_64 | 29 +++--------------- bin/makefile-linux.386-sdl | 27 +++-------------- bin/makefile-linux.386-x | 29 +++--------------- bin/makefile-linux.aarch64-sdl | 26 ++-------------- bin/makefile-linux.aarch64-x | 28 ++--------------- bin/makefile-linux.armv7l-sdl | 26 ++-------------- bin/makefile-linux.armv7l-x | 28 ++--------------- bin/makefile-linux.x86_64-sdl | 27 +++-------------- bin/makefile-linux.x86_64-x | 30 +++---------------- 15 files changed, 104 insertions(+), 250 deletions(-) create mode 100644 bin/linux-common.mk rename bin/{makefile-linux-check-prerequisites => linux-libbsd.mk} (85%) create mode 100644 bin/linux-sdl.mk create mode 100644 bin/linux-x.mk diff --git a/CMakeLists.txt b/CMakeLists.txt index 8c747c31..a1842d82 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -36,9 +36,10 @@ IF(NEED_LIB_M) SET(MAIKO_LIBRARIES m) ENDIF() -CHECK_LIBRARY_EXISTS(bsd strlcat "" NEED_LIB_BSD) -IF(NEED_LIB_BSD) - SET(MAIKO_LIBRARIES ${MAIKO_LIBRARIES} bsd) +IF (CMAKE_SYSTEM_NAME STREQUAL "Linux") + find_package(PkgConfig REQUIRED) + pkg_check_modules(LIBBSD-OVERLAY REQUIRED IMPORTED_TARGET "libbsd-overlay") + SET(MAIKO_LIBRARIES ${MAIKO_LIBRARIES} PkgConfig::LIBBSD-OVERLAY) ENDIF() SET (MAIKO_RELEASE 351 CACHE STRING "Release version to build. Release: 115, 200, 201, 210, 300, 350, 351") @@ -533,3 +534,21 @@ TARGET_INCLUDE_DIRECTORIES(setsout PRIVATE inc) ADD_EXECUTABLE(tstsout src/tstsout.c src/byteswap.c) TARGET_COMPILE_DEFINITIONS(tstsout PRIVATE ${MAIKO_DEFINITIONS}) TARGET_INCLUDE_DIRECTORIES(tstsout PRIVATE inc) + +# Installation Targets +IF(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) + set(CMAKE_INSTALL_PREFIX "${CMAKE_BINARY_DIR}/../" CACHE PATH "Installation prefix" FORCE) +ENDIF() +execute_process( + COMMAND sh -c "echo $(../bin/osversion).$(../bin/machinetype)" + OUTPUT_VARIABLE release_dir + WORKING_DIRECTORY ${CMAKE_BINARY_DIR} + OUTPUT_STRIP_TRAILING_WHITESPACE +) +INSTALL(TARGETS lde DESTINATION ${release_dir}) +IF(MAIKO_DISPLAY_X11) + INSTALL(TARGETS ldex ldeinit DESTINATION ${release_dir}) +ENDIF() +IF(MAIKO_DISPLAY_SDL) + INSTALL(TARGETS ldesdl DESTINATION ${release_dir}) +ENDIF() diff --git a/bin/linux-common.mk b/bin/linux-common.mk new file mode 100644 index 00000000..c39251e7 --- /dev/null +++ b/bin/linux-common.mk @@ -0,0 +1,15 @@ +# Common Options for All Linuxes + +CC = gcc $(GCC_CFLAGS) +# CC = clang $(CLANG_CFLAGS) + +include linux-libbsd.mk + +# OPTFLAGS is normally -O2. +OPTFLAGS = -O2 -g3 +DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE) $(BSD_CFLAGS) $(ADDITIONAL_DFLAGS) + +LDFLAGS = $(XLDFLAGS) -lc -lm $(BSD_LDFLAGS) +LDELDFLAGS = $(XLDFLAGS) -lc -lm $(BSD_LDFLAGS) + +OBJECTDIR = ../$(RELEASENAME)/ diff --git a/bin/makefile-linux-check-prerequisites b/bin/linux-libbsd.mk similarity index 85% rename from bin/makefile-linux-check-prerequisites rename to bin/linux-libbsd.mk index 352fc557..733a9f4a 100644 --- a/bin/makefile-linux-check-prerequisites +++ b/bin/linux-libbsd.mk @@ -17,4 +17,8 @@ ifneq ($(MAKECMDGOALS),clean) endif endif +BSD_CFLAGS = $(shell pkg-config --cflags libbsd-overlay) + +BSD_LDFLAGS = $(shell pkg-config --libs libbsd-overlay) + diff --git a/bin/linux-sdl.mk b/bin/linux-sdl.mk new file mode 100644 index 00000000..764d2fa9 --- /dev/null +++ b/bin/linux-sdl.mk @@ -0,0 +1,14 @@ +# Common Options for Linux using SDL instead of X Windows + +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 + +XLDFLAGS = -lSDL2 + diff --git a/bin/linux-x.mk b/bin/linux-x.mk new file mode 100644 index 00000000..730eea1a --- /dev/null +++ b/bin/linux-x.mk @@ -0,0 +1,17 @@ +# Common Options for Linux with X Windows + +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 + +XLDFLAGS = -L/usr/X11/lib -lX11 + diff --git a/bin/makefile-init-linux.aarch64 b/bin/makefile-init-linux.aarch64 index 5ba7fd27..3920d463 100644 --- a/bin/makefile-init-linux.aarch64 +++ b/bin/makefile-init-linux.aarch64 @@ -1,33 +1,12 @@ # Options for Linux, aarch64 processor, X windows, for INIT processing -CC = gcc $(GCC_CFLAGS) -#CC = clang $(CLANG_CFLAGS) +include linux-x.mk -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 - -include makefile-linux-check-prerequisites -BSD_CFLAGS = $(shell pkg-config --cflags libbsd-overlay) -BSD_LDFLAGS = $(shell pkg-config --libs libbsd-overlay) - -# 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 $(BSD_CFLAGS) +ADDITIONAL_DFLAGS = $(DEBUGFLAGS) -DNOVERSION -DINIT -LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm $(BSD_LDFLAGS) -LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm $(BSD_LDFLAGS) +include linux-common.mk -OBJECTDIR = ../$(RELEASENAME)/ +OPTFLAGS = -O0 -g default : ../$(OSARCHNAME)/ldeinit diff --git a/bin/makefile-init-linux.x86_64 b/bin/makefile-init-linux.x86_64 index 14f142ea..eb337543 100644 --- a/bin/makefile-init-linux.x86_64 +++ b/bin/makefile-init-linux.x86_64 @@ -1,33 +1,12 @@ # Options for Linux, x86 processor, X windows, for INIT processing -CC = gcc $(GCC_CFLAGS) -#CC = clang $(CLANG_CFLAGS) +include linux-x.mk -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 - -include makefile-linux-check-prerequisites -BSD_CFLAGS = $(shell pkg-config --cflags libbsd-overlay) -BSD_LDFLAGS = $(shell pkg-config --libs libbsd-overlay) - -# 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 $(BSD_CFLAGS) +ADDITIONAL_DFLAGS = $(DEBUGFLAGS) -DNOVERSION -DINIT -LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm $(BSD_LDFLAGS) -LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm $(BSD_LDFLAGS) +include linux-common.mk -OBJECTDIR = ../$(RELEASENAME)/ +OPTFLAGS = -O0 -g default : ../$(OSARCHNAME)/ldeinit diff --git a/bin/makefile-linux.386-sdl b/bin/makefile-linux.386-sdl index f47ea443..28b61fe8 100644 --- a/bin/makefile-linux.386-sdl +++ b/bin/makefile-linux.386-sdl @@ -1,29 +1,10 @@ # Options for Linux, Intel 386/486 and SDL -CC = gcc -m32 $(GCC_CFLAGS) -# CC = clang $(CLANG_CFLAGS) +GCC_CFLAGS := -m64 $(GCC_CFLAGS) +CLANG_CFLAGS := -m64 $(CLANG_CFLAGS) -XFILES = $(OBJECTDIR)sdl.o +include linux-sdl.mk -# -# 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 - -include makefile-linux-check-prerequisites -BSD_CFLAGS = $(shell pkg-config --cflags libbsd-overlay) -BSD_LDFLAGS = $(shell pkg-config --libs libbsd-overlay) - -# OPTFLAGS is normally -O2. -OPTFLAGS = -O2 -g3 -DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE) $(BSD_CFLAGS) - -LDFLAGS = -lm -lSDL2 $(BSD_LDFLAGS) -LDELDFLAGS = $(BSD_LDFLAGS) - -OBJECTDIR = ../$(RELEASENAME)/ +include linux-common.mk default : ../$(OSARCHNAME)/lde ../$(OSARCHNAME)/ldesdl diff --git a/bin/makefile-linux.386-x b/bin/makefile-linux.386-x index 8c97572a..3ce00c4e 100644 --- a/bin/makefile-linux.386-x +++ b/bin/makefile-linux.386-x @@ -1,31 +1,10 @@ # Options for Linux, Intel 386/486 and X-Window -CC = gcc -m32 $(GCC_CFLAGS) -# CC = clang -m32 $(CLANG_CFLAGS) +GCC_CFLAGS := -m32 $(GCC_CFLAGS) +CLANG_CFLAGS := -m32 $(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 +include linux-x.mk -XFLAGS = -DXWINDOW - -include makefile-linux-check-prerequisites -BSD_CFLAGS = $(shell pkg-config --cflags libbsd-overlay) -BSD_LDFLAGS = $(shell pkg-config --libs libbsd-overlay) - -# OPTFLAGS is normally -O2. -OPTFLAGS = -O2 -g3 -DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE) $(BSD_CFLAGS) - -LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm $(BSD_LDFLAGS) -LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm $(BSD_LDFLAGS) - -OBJECTDIR = ../$(RELEASENAME)/ +include linux-common.mk default : ../$(OSARCHNAME)/lde ../$(OSARCHNAME)/ldex diff --git a/bin/makefile-linux.aarch64-sdl b/bin/makefile-linux.aarch64-sdl index 2559f214..dcf5c1d5 100644 --- a/bin/makefile-linux.aarch64-sdl +++ b/bin/makefile-linux.aarch64-sdl @@ -1,29 +1,7 @@ # Options for Linux, ARM64 and SDL -CC = gcc $(GCC_CFLAGS) -#CC = clang $(CLANG_CFLAGS) +include linux-sdl.mk -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 - -include makefile-linux-check-prerequisites -BSD_CFLAGS = $(shell pkg-config --cflags libbsd-overlay) -BSD_LDFLAGS = $(shell pkg-config --libs libbsd-overlay) - -# OPTFLAGS is normally -O2. -OPTFLAGS = -O2 -g3 -DFLAGS = $(SDLFLAGS) -DRELEASE=$(RELEASE) $(BSD_CFLAGS) - -LDFLAGS = -lSDL2 -lm $(BSD_LDFLAGS) -LDELDFLAGS = $(BSD_LDFLAGS) - -OBJECTDIR = ../$(RELEASENAME)/ +include linux-common.mk default : ../$(OSARCHNAME)/lde ../$(OSARCHNAME)/ldesdl diff --git a/bin/makefile-linux.aarch64-x b/bin/makefile-linux.aarch64-x index 99a58caf..90ecd865 100644 --- a/bin/makefile-linux.aarch64-x +++ b/bin/makefile-linux.aarch64-x @@ -1,31 +1,7 @@ # Options for Linux, aarch64 and X-Window -CC = gcc $(GCC_CFLAGS) -#CC = clang $(CLANG_CFLAGS) +include linux-x.mk -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 - -include makefile-linux-check-prerequisites -BSD_CFLAGS = $(shell pkg-config --cflags libbsd-overlay) -BSD_LDFLAGS = $(shell pkg-config --libs libbsd-overlay) - -# OPTFLAGS is normally -O2. -OPTFLAGS = -O2 -g3 -DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE) $(BSD_CFLAGS) - -LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm $(BSD_LDFLAGS) -LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm $(BSD_LDFLAGS) - -OBJECTDIR = ../$(RELEASENAME)/ +include linux-common.mk default : ../$(OSARCHNAME)/lde ../$(OSARCHNAME)/ldex diff --git a/bin/makefile-linux.armv7l-sdl b/bin/makefile-linux.armv7l-sdl index 47a87a61..5d5f53a8 100644 --- a/bin/makefile-linux.armv7l-sdl +++ b/bin/makefile-linux.armv7l-sdl @@ -1,29 +1,7 @@ # Options for Linux, ARMv7 and SDL -CC = gcc $(GCC_CFLAGS) -#CC = clang $(CLANG_CFLAGS) +include linux-sdl.mk -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 - -include makefile-linux-check-prerequisites -BSD_CFLAGS = $(shell pkg-config --cflags libbsd-overlay) -BSD_LDFLAGS = $(shell pkg-config --libs libbsd-overlay) - -# OPTFLAGS is normally -O2. -OPTFLAGS = -O2 -g3 -DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE) $(BSD_CFLAGS) - -LDFLAGS = -lm -lSDL2 $(BSD_LDFLAGS) -LDELDFLAGS = $(BSD_LDFLAGS) - -OBJECTDIR = ../$(RELEASENAME)/ +include linux-common.mk default : ../$(OSARCHNAME)/lde ../$(OSARCHNAME)/ldesdl diff --git a/bin/makefile-linux.armv7l-x b/bin/makefile-linux.armv7l-x index fa787fb7..b113143a 100644 --- a/bin/makefile-linux.armv7l-x +++ b/bin/makefile-linux.armv7l-x @@ -1,31 +1,7 @@ # Options for Linux, ARMv7 and X-Window -CC = gcc $(GCC_CFLAGS) -#CC = clang $(CLANG_CFLAGS) +include linux-x.mk -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 - -include makefile-linux-check-prerequisites -BSD_CFLAGS = $(shell pkg-config --cflags libbsd-overlay) -BSD_LDFLAGS = $(shell pkg-config --libs libbsd-overlay) - -# OPTFLAGS is normally -O2. -OPTFLAGS = -O2 -g3 -DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE) $(BSD_CFLAGS) - -LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm $(BSD_LDFLAGS) -LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm $(BSD_LDFLAGS) - -OBJECTDIR = ../$(RELEASENAME)/ +include linux-common.mk default : ../$(OSARCHNAME)/lde ../$(OSARCHNAME)/ldex diff --git a/bin/makefile-linux.x86_64-sdl b/bin/makefile-linux.x86_64-sdl index 640a59c5..47698cb1 100644 --- a/bin/makefile-linux.x86_64-sdl +++ b/bin/makefile-linux.x86_64-sdl @@ -1,29 +1,10 @@ # Options for Linux, Intel x86_64 and SDL -CC = gcc -m64 $(GCC_CFLAGS) -# CC = clang -m64 $(CLANG_CFLAGS) +GCC_CFLAGS := -m64 $(GCC_CFLAGS) +CLANG_CFLAGS := -m64 $(CLANG_CFLAGS) -XFILES = $(OBJECTDIR)sdl.o +include linux-sdl.mk -# -# 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 - -include makefile-linux-check-prerequisites -BSD_CFLAGS = $(shell pkg-config --cflags libbsd-overlay) -BSD_LDFLAGS = $(shell pkg-config --libs libbsd-overlay) - -# OPTFLAGS is normally -O2. -OPTFLAGS = -O2 -g3 -DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE) $(BSD_CFLAGS) - -LDFLAGS = -lm -lSDL2 $(BSD_LDFLAGS) -LDELDFLAGS = $(BSD_LDFLAGS) - -OBJECTDIR = ../$(RELEASENAME)/ +include linux-common.mk default : ../$(OSARCHNAME)/lde ../$(OSARCHNAME)/ldesdl diff --git a/bin/makefile-linux.x86_64-x b/bin/makefile-linux.x86_64-x index 87016b47..6c9f398a 100644 --- a/bin/makefile-linux.x86_64-x +++ b/bin/makefile-linux.x86_64-x @@ -1,32 +1,10 @@ # Options for Linux, Intel x86_64 and X-Window -CC = gcc -m64 $(GCC_CFLAGS) -# CC = clang -m64 $(CLANG_CFLAGS) +GCC_CFLAGS := -m64 $(GCC_CFLAGS) +CLANG_CFLAGS := -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 +include linux-x.mk - -XFLAGS = -DXWINDOW - -include makefile-linux-check-prerequisites -BSD_CFLAGS = $(shell pkg-config --cflags libbsd-overlay) -BSD_LDFLAGS = $(shell pkg-config --libs libbsd-overlay) - -# OPTFLAGS is normally -O2. -OPTFLAGS = -O2 -g3 -DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE) $(BSD_CFLAGS) - -LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm $(BSD_LDFLAGS) -LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm $(BSD_LDFLAGS) - -OBJECTDIR = ../$(RELEASENAME)/ +include linux-common.mk default : ../$(OSARCHNAME)/lde ../$(OSARCHNAME)/ldex From dadbef47bf1aca2d359bb26c44f52b6f5db833d0 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Mon, 9 Mar 2026 20:43:02 -0700 Subject: [PATCH 6/6] Add pkgconf package to things loaded into the Builder Docker image to be used by libbsd changes to linux makefiles --- .github/workflows/Dockerfile_builder | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/Dockerfile_builder b/.github/workflows/Dockerfile_builder index 87ff0a57..8a9fc07e 100755 --- a/.github/workflows/Dockerfile_builder +++ b/.github/workflows/Dockerfile_builder @@ -12,7 +12,9 @@ FROM ubuntu:22.04 SHELL ["/bin/bash", "-c"] USER root:root # Install build tools -RUN apt-get update && apt-get install -y make clang libx11-dev libbsd-dev libpcap-dev gcc +RUN apt-get update \ + && apt-get install -y build-essential gcc pkgconf make clang cmake \ + && apt-get install -y libx11-dev libbsd-dev libpcap-dev USER root WORKDIR /root ENTRYPOINT /bin/bash