diff options
| author | Jonathan Bradley <jcb@pikum.xyz> | 2025-09-02 16:37:51 -0400 |
|---|---|---|
| committer | Jonathan Bradley <jcb@pikum.xyz> | 2025-09-02 16:37:51 -0400 |
| commit | 4d027a94570f63a4a76d80d62bfd9a8d2bd2c290 (patch) | |
| tree | a839d32f30fa6a894189bc30a9015327286e2788 | |
pke-at: initial commit, builds and runs
| -rw-r--r-- | Makefile | 56 | ||||
| -rw-r--r-- | config.mk | 51 | ||||
| -rw-r--r-- | src/pke-at.cpp | 18 |
3 files changed, 125 insertions, 0 deletions
diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..158ca72 --- /dev/null +++ b/Makefile @@ -0,0 +1,56 @@ +# pke-at + +PROJ=pke-at + +-include config.mk + +FLAGS_DEBUG = -O0 -g -DDEBUG +FLAGS_RELEASE_DEBUG = -O2 -g -DDEBUG +FLAGS_RELEASE = -O2 -s -DNDEBUG +BUILD_MODE_FLAGS = $(FLAGS_DEBUG) + +define cc-command + $(CC) -std=c2x -c -o $@ $(BUILD_MODE_FLAGS) $(CFLAGS) $(INCS) $< +endef + +define cxx-command + $(CXX) -std=c++23 -c -o $@ $(BUILD_MODE_FLAGS) $(CXXFLAGS) $(INCS) $< +endef + +.PHONY: default +default: options .WAIT bin/pke-at + +.PHONY: prepare +prepare: ## Set up the current directory to build + mkdir -p bin + mkdir -p obj + +.PHONY: options +options: prepare .WAIT + @echo "$(PROJ)" build options: + @echo "CFLAGS = $(CFLAGS)" + @echo "CXXFLAGS = $(CXXFLAGS)" + @echo "BUILD_MODE_FLAGS = $(BUILD_MODE_FLAGS)" + @echo "LDFLAGS = $(LDFLAGS)" + @echo "CC = $(CC)" + @echo "CXX = $(CXX)" + +obj/%.o : src/%.c | prepare + $(cc-command) +obj/%.o : src/%.cpp | prepare + $(cxx-command) + +bin/pke-at: ## Builds the pke-at executable +bin/pke-at: obj/pke-at.o + $(CXX) -v -std=c++23 $(BUILD_MODE_FLAGS) $(INCS) $^ $(LDFLAGS) $(CXXFLAGS) -o $@ + +.PHONY: clean +clean: + rm -rf bin + rm -rf obj + rm -rf *.plist + +.PHONY: help +help: ## Prints help for targets with comments + @cat $(MAKEFILE_LIST) | grep -E '^[a-zA-Z_-]+:.*?## .*$$' | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}' + diff --git a/config.mk b/config.mk new file mode 100644 index 0000000..34122a9 --- /dev/null +++ b/config.mk @@ -0,0 +1,51 @@ +# version +PKE_AT_VERSION_MAJ=0 +PKE_AT_VERSION_MIN=1 +PKE_AT_VERSION_BLD=0 +PKE_AT_VERSION=$(PKE_AT_VERSION_MAJ).$(PKE_AT_VERSION_MIN).$(PKE_AT_VERSION_BLD) + +# paths +PREFIX ?= /usr/local +MANPREFIX = /usr/local + +# exes +PKG_CONFIG = pkg-config +CMAKE = /usr/bin/cmake +GLSLC = /usr/bin/glslc + +#includes and libs +# vulkan \ +# glfw3 \ +# glm \ +# libpipewire-0.3 \ +# libspa-0.2 \ + +USED_STATIC_LIBS = pke + +USED_LIBS = + +INCS = `$(PKG_CONFIG) --static --cflags $(USED_STATIC_LIBS)` + +LIBS = -lm `$(PKG_CONFIG) --static --libs $(USED_STATIC_LIBS)` -lpthread + +# flags +# -fsanitize=address \ + +SHARED_FLAGS = \ + -D_DEFAULT_SOURCE \ + -D_POSIX_C_SOURCE=200809L \ + -D_PKE_AT_VERSION=\"$(PKE_AT_VERSION)\" \ + -pedantic \ + -fPIC \ + -pthread \ + -rdynamic \ + -finstrument-functions \ + +CFLAGS += -Wall -Wextra $(SHARED_FLAGS) +CXXFLAGS += -Wall -Wextra $(SHARED_FLAGS) +CPPFLAGS = $(SHARED_FLAGS) +LDFLAGS = $(LIBS) + +# compiler & linker +CC ?= /usr/bin/gcc +CXX ?= /usr/bin/g++ diff --git a/src/pke-at.cpp b/src/pke-at.cpp new file mode 100644 index 0000000..2e26370 --- /dev/null +++ b/src/pke-at.cpp @@ -0,0 +1,18 @@ + +#include <csignal> + +#include <pke/pke.hpp> + +void signal_handler(int signal_num) { + fprintf(stdout, "Received signal: %d - shutting down\n", signal_num); + pkeSettings.isGameRunning = false; +} + +int main(int argc, char *argv[]) { + signal(SIGTERM, signal_handler); + fprintf(stdout, "PKE_AT ENTERING\n"); + PkeArgs_Parse(argc, argv); + Game_Main({}, argv[0]); + fprintf(stdout, "PKE_AT EXITING\n"); + return 0; +} |
