commit b930e33

uint  ·  2026-07-14 12:35:04 +0000 UTC
parent 7ab90a2
build libmaus in configure script, update Makefile
2 files changed,  +72, -59
+11, -11
 1@@ -1,26 +1,24 @@
 2 CC = cc
 3 CFLAGS = -std=c99 -Wall -Wextra
 4 CPPFLAGS = -Iinclude -Ilibmaus/include
 5-
 6-LDFLAGS = -lgrapheme
 7+LDFLAGS =
 8+LDLIBS = -lgrapheme
 9 
10 include platform.mk
11 
12 SRCS = source/cterm.c \
13-       source/utils.c  \
14-       source/font.c  \
15-       source/term.c  \
16-       source/draw.c  \
17-       libmaus/source/maus.c     \
18-       libmaus/source/maus_x11.c \
19-       libmaus/source/utils.c
20+       source/utils.c \
21+       source/font.c \
22+       source/term.c \
23+       source/draw.c
24+
25 OUT = cterm
26 
27 all:
28-	${CC} ${SRCS} ${CFLAGS} -O2 ${CPPFLAGS} ${LDFLAGS} -o ${OUT}
29+	${CC} ${CFLAGS} -Os ${CPPFLAGS} ${SRCS} ${LDFLAGS} -o ${OUT} ${LDLIBS}
30 
31 debug:
32-	${CC} ${SRCS} ${CFLAGS} -g ${CPPFLAGS} ${LDFLAGS} -o ${OUT}
33+	${CC} ${CFLAGS} -g  ${CPPFLAGS} ${SRCS} ${LDFLAGS} -o ${OUT} ${LDLIBS}
34 
35 clean:
36 	rm -f ${OUT}
37@@ -29,3 +27,5 @@ compile_flags:
38 	rm -f compile_flags.txt
39 	for f in ${CPPFLAGS} ${CFLAGS}; do echo $$f >> compile_flags.txt; done
40 
41+.PHONY: all debug clean compile_flags
42+
+61, -48
  1@@ -1,51 +1,64 @@
  2 #!/bin/sh
  3+set -eu
  4 
  5-PLATFORM=$(uname)
  6-
  7-if [ -n "$WAYLAND_DISPLAY" ]; then
  8-	UNIX_BACKEND=-DBACKEND_WAY
  9-elif [ -n "$DISPLAY" ]; then
 10-	UNIX_BACKEND=-DBACKEND_X11
 11-else
 12-	echo "Neither Xorg or Wayland detected! Aborting..." >&2
 13-	exit 1
 14-fi
 15-
 16-LINUX_LDFLAGS="-lX11 -lXext"
 17-LINUX_CPPFLAGS="-D_XOPEN_SOURCE=700 $UNIX_BACKEND"
 18-
 19-FREEBSD_LDFLAGS="-lX11 -lXext"
 20-FREEBSD_CPPFLAGS="$UNIX_BACKEND"
 21-
 22-OPENBSD_LDFLAGS="-I/usr/X11R6/include -L/usr/X11R6/lib -lX11 -lXext"
 23-OPENBSD_CPPFLAGS="$UNIX_BACKEND"
 24-
 25-MACOS_LDFLAGS="-framework Cocoa -framework CoreVideo -framework IOKit -framework CoreGraphics -framework CoreFoundation -framework Carbon"
 26-
 27-{
 28-	case "$PLATFORM" in
 29-		Linux)
 30-			echo "# Linux"
 31-			echo "LDFLAGS += $LINUX_LDFLAGS"
 32-			echo "CPPFLAGS += $LINUX_CPPFLAGS"
 33-			;;
 34-		FreeBSD)
 35-			echo "# FreeBSD"
 36-			echo "LDFLAGS += $FREEBSD_LDFLAGS"
 37-			echo "CPPFLAGS += $FREEBSD_CPPFLAGS"
 38-			;;
 39-		OpenBSD)
 40-			echo "# OpenBSD"
 41-			echo "LDFLAGS += $OPENBSD_LDFLAGS"
 42-			echo "CPPFLAGS += $OPENBSD_CPPFLAGS"
 43-			;;
 44-		Darwin)
 45-			echo "# Darwin"
 46-			echo "LDFLAGS += $MACOS_LDFLAGS"
 47-			;;
 48-		*) # TODO: some better default option
 49-			echo "Unsupported platform: $PLATFORM" >&2
 50+PLATFORM=$(uname -s)
 51+CPPFLAGS=
 52+LDFLAGS="-Llibmaus/build"
 53+
 54+case "$PLATFORM" in
 55+	Darwin)
 56+		BACKEND=mac
 57+		LDLIBS="-lmaus_mac \
 58+		        -framework Cocoa \
 59+		        -framework CoreVideo \
 60+		        -framework IOKit \
 61+		        -framework CoreGraphics \
 62+		        -framework CoreFoundation \
 63+		        -framework Carbon"
 64+		;;
 65+
 66+	Linux|FreeBSD|OpenBSD)
 67+		if [ -n "${WAYLAND_DISPLAY:-}" ]; then
 68+			BACKEND=way
 69+			CPPFLAGS=-DBACKEND_WAY
 70+			LDLIBS="-lmaus_way -lwayland-client"
 71+		elif [ -n "${DISPLAY:-}" ]; then
 72+			BACKEND=x11
 73+			CPPFLAGS=-DBACKEND_X11
 74+			LDLIBS="-lmaus_x11 -lX11 -lXext"
 75+		else
 76+			echo "No X11 or Wayland display found" >&2
 77 			exit 1
 78-			;;
 79-	esac
 80-} > platform.mk
 81+		fi
 82+
 83+		case "$PLATFORM" in
 84+			Linux)
 85+				CPPFLAGS="-D_XOPEN_SOURCE=700 $CPPFLAGS"
 86+				;;
 87+			OpenBSD)
 88+				CPPFLAGS="-I/usr/X11R6/include $CPPFLAGS"
 89+				LDFLAGS="-L/usr/X11R6/lib $LDFLAGS"
 90+				;;
 91+		esac
 92+		;;
 93+
 94+	*)
 95+		echo "Unsupported platform: $PLATFORM" >&2
 96+		exit 1
 97+		;;
 98+esac
 99+
100+(
101+	cd libmaus
102+	rm -rf build/
103+	./configure --backend="$BACKEND"
104+	make
105+)
106+
107+cat >platform.mk <<EOF
108+CPPFLAGS += $CPPFLAGS
109+LDFLAGS += $LDFLAGS
110+LDLIBS += $LDLIBS
111+EOF
112+
113+echo "Configuration done"