aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEmanuel Haupt <ehaupt@FreeBSD.org>2025-11-22 09:11:18 +0000
committerEmanuel Haupt <ehaupt@FreeBSD.org>2025-11-22 09:11:18 +0000
commitc8c8032a2fede3622570ce0eca27cb2d579fc0f9 (patch)
tree9ae54dced45ee8598a9419874f4d88a633e76724
parent90bba547a3324ba5512ef3d67f72c6d6772bdd1b (diff)
games/pacman.c: Add new port
pacman.c is a simple Pac Man clone written in C99 with minimal dependencies. It recreates the classic maze chase gameplay with ghosts, pellets and responsive controls, and serves as a compact, well commented example of a complete cross platform game.
-rw-r--r--games/Makefile1
-rw-r--r--games/pacman.c/Makefile45
-rw-r--r--games/pacman.c/distinfo5
-rw-r--r--games/pacman.c/files/patch-pacman.c.617
-rw-r--r--games/pacman.c/pkg-descr4
5 files changed, 72 insertions, 0 deletions
diff --git a/games/Makefile b/games/Makefile
index fb70389c312c..b21665deb41c 100644
--- a/games/Makefile
+++ b/games/Makefile
@@ -751,6 +751,7 @@
SUBDIR += p5-Games-GuessWord
SUBDIR += p5-Games-Tournament-RoundRobin
SUBDIR += pachi
+ SUBDIR += pacman.c
SUBDIR += pacmanarena
SUBDIR += palapeli
SUBDIR += pangzero
diff --git a/games/pacman.c/Makefile b/games/pacman.c/Makefile
new file mode 100644
index 000000000000..7591336f43b1
--- /dev/null
+++ b/games/pacman.c/Makefile
@@ -0,0 +1,45 @@
+PORTNAME= pacman.c
+DISTVERSION= g20251120
+CATEGORIES= games
+MASTER_SITES= LOCAL/ehaupt:icon
+DISTFILES= ${PORTNAME}-icon-${ICON_VERSION}${EXTRACT_SUFX}:icon
+
+MAINTAINER= ehaupt@FreeBSD.org
+COMMENT= Simple Pacman clone written in C99
+WWW= https://floooh.github.io/pacman.c/pacman.html \
+ https://github.com/floooh/pacman.c
+
+LICENSE= MIT
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+LIB_DEPENDS+= libasound.so:audio/alsa-lib
+
+USES= cmake gl localbase:ldflags xorg
+USE_GITHUB= yes
+GH_ACCOUNT= floooh
+GH_TAGNAME= be5f12c
+USE_GL+= gl
+USE_XORG= x11 xcursor xi
+
+DESKTOP_ENTRIES= "pacman.c" \
+ "${COMMENT}" \
+ "${PREFIX}/share/pixmaps/${PORTNAME}.png" \
+ "${PORTNAME}" \
+ "" \
+ false
+
+PLIST_FILES= bin/pacman.c \
+ share/man/man6/pacman.c.6.gz \
+ share/pixmaps/pacman.c.png
+
+ICON_VERSION= 1
+
+do-install:
+ ${INSTALL_PROGRAM} ${BUILD_WRKSRC}/pacman \
+ ${STAGEDIR}${PREFIX}/bin/${PORTNAME}
+ ${INSTALL_MAN} ${WRKSRC}/${PORTNAME}.6 \
+ ${STAGEDIR}${PREFIX}/share/man/man6
+ ${INSTALL_DATA} ${WRKDIR}/${PORTNAME}-icon-${ICON_VERSION}/${PORTNAME}.png \
+ ${STAGEDIR}${PREFIX}/share/pixmaps/${PORTNAME}.png
+
+.include <bsd.port.mk>
diff --git a/games/pacman.c/distinfo b/games/pacman.c/distinfo
new file mode 100644
index 000000000000..3c3973813442
--- /dev/null
+++ b/games/pacman.c/distinfo
@@ -0,0 +1,5 @@
+TIMESTAMP = 1763734580
+SHA256 (pacman.c-icon-1.tar.gz) = 94a97f799bc2dadb638931a4f66eeb1a8a491d90db30406f8cbc0e4f3240f859
+SIZE (pacman.c-icon-1.tar.gz) = 12852
+SHA256 (floooh-pacman.c-g20251120-be5f12c_GH0.tar.gz) = d313ccaebcc443b29056ab87cc5410faff1ce2c82cb193c73356694620751441
+SIZE (floooh-pacman.c-g20251120-be5f12c_GH0.tar.gz) = 1222734
diff --git a/games/pacman.c/files/patch-pacman.c.6 b/games/pacman.c/files/patch-pacman.c.6
new file mode 100644
index 000000000000..a5184865c9b8
--- /dev/null
+++ b/games/pacman.c/files/patch-pacman.c.6
@@ -0,0 +1,17 @@
+--- pacman.c.6.orig 2025-11-20 11:46:17 UTC
++++ pacman.c.6
+@@ -0,0 +1,14 @@
++.TH "Pacman" 6 "November 11th, 2025"
++.SH NAME
++pacman.c \- Simple Pacman clone
++.SH SYNOPSIS
++pacman.c
++.SH DESCRIPTION
++Pacman is a yellow, circular character that you move through a maze
++(arrow keys), eating small dots while avoiding colorful ghosts.
++When he eats special Power dots, he can temporarily turn the tables
++and eat the ghosts for extra points.
++
++You can switch between fullscreen and windowed mode using the f key.
++.SH AUTHORS
++This clone was written by Andre Weissflog.
diff --git a/games/pacman.c/pkg-descr b/games/pacman.c/pkg-descr
new file mode 100644
index 000000000000..d35b72c9c402
--- /dev/null
+++ b/games/pacman.c/pkg-descr
@@ -0,0 +1,4 @@
+pacman.c is a simple Pac Man clone written in C99 with minimal
+dependencies. It recreates the classic maze chase gameplay with ghosts,
+pellets and responsive controls, and serves as a compact, well commented
+example of a complete cross platform game.