1
0
mirror of https://github.com/Interlisp/maiko.git synced 2026-03-22 00:50:05 +00:00

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.

This commit is contained in:
Frank Halasz
2026-03-09 18:11:23 -07:00
parent fcbcb2c6b8
commit 41cad3e499
15 changed files with 104 additions and 250 deletions

View File

@@ -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()

15
bin/linux-common.mk Normal file
View File

@@ -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)/

View File

@@ -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)

14
bin/linux-sdl.mk Normal file
View File

@@ -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

17
bin/linux-x.mk Normal file
View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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