Remove core.h, SDL2->SDL3, Makefile cleanup, ansi C, 80 char.

This commit is contained in:
2026-08-04 04:52:46 -07:00
parent a829ac8647
commit 14d87eac10
162 changed files with 57434 additions and 31335 deletions
+53 -39
View File
@@ -1,66 +1,80 @@
ifeq ($(OS),Windows_NT)
DETECTED_OS := windows
else
UNAME_S := $(shell uname -s)
UNAME_M := $(shell uname -m)
ifeq ($(UNAME_S),Darwin)
DETECTED_OS := macos
else ifeq ($(UNAME_S),Linux)
DETECTED_OS := linux
else
DETECTED_OS := unknown
endif
ifeq ($(UNAME_M),x86_64)
ARCH := ARCHITECTURE_X64
else ifneq ($(filter $(UNAME_M),i686,i386),)
ARCH := ARCHITECTURE_X86
else ifneq ($(filter $(UNAME_M),aarch64 arm64),)
ARCH := ARCHITECTURE_ARM64
else ifneq ($(filter $(UNAME_M),armv7l armv6l),)
ARCH := ARCHITECTURE_ARM32
endif
UNAME_S := $(shell uname -s)
ifeq ($(UNAME_S),Darwin)
OS := OS_MACOS
else ifeq ($(UNAME_S),Linux)
OS := OS_LINUX
endif
CC = clang
UFLAGS =
FLAGS = -ansi -pedantic -pedantic-errors -Wno-long-long -Wall -Wextra \
-Wincompatible-pointer-types \
-Wint-conversion -Wimplicit-int-float-conversion -Wformat \
-Wno-strict-prototypes -Wno-missing-field-initializers \
-Wno-unused-function -Wno-unused-parameter -Wno-unused-variable \
-Wno-unused-but-set-variable \
-fno-caret-diagnostics -fno-show-column
ifeq ($(CC),clang)
COMP := COMPILER_CLANG
else ifeq ($(CC),gcc)
COMP := COMPILER_GCC
endif
ifeq ($(DETECTED_OS),macos)
UFLAGS = -glldb
INCLUDE = -I./sdl/include/
LIBS = ./sdl/lib/arm-macos/libSDL2.a -lm
# -ansi -pedantic -pedantic-errors
CFLAGS = -Wno-long-long -Wall -Wextra \
-Wincompatible-pointer-types \
-Wint-conversion -Wimplicit-int-float-conversion -Wformat \
-Wno-strict-prototypes -Wno-missing-field-initializers \
-Wno-unused-function -Wno-unused-parameter -Wno-unused-variable \
-Wno-unused-but-set-variable \
-fno-caret-diagnostics -fno-show-column
ifeq ($(OS),OS_MACOS)
FLAGS = -glldb
INCLUDE = -I./libs/include/
LIBS = ./libs/lib/arm-macos/libSDL3.a -lm
FRAMEWORKS = -framework Cocoa -framework IOKit -framework CoreAudio \
-framework AudioToolbox -framework ForceFeedback \
-framework Carbon -framework GameController \
-framework Metal -framework QuartzCore \
-framework CoreHaptics
else ifeq ($(DETECTED_OS),linux)
UFLAGS = -ggdb -D_POSIX_C_SOURCE=200809L
INCLUDE = -I./sdl/include/
LIBS = ./sdl/lib/x86_64-linux/libSDL2.a -lm -lX11
FRAMEWORKS =
else
INCLUDE =
LIBS =
else ifeq ($(OS),OS_LINUX)
FLAGS = -ggdb -D_POSIX_C_SOURCE=200809L -no-pie
INCLUDE = -I./libs/include/
LIBS = ./libs/lib/x86_64-linux/libSDL3.a -lm -lX11
FRAMEWORKS =
endif
EXE=handmadehero
default: tags libhandmade $(EXE)
default: libhandmade $(EXE)
libhandmade: handmade.c
@ $(CC) $(FLAGS) $(UFLAGS) -fPIC -shared $(INCLUDE) $^ $(LIBS) \
$(CC) $(CFLAGS) $(FLAGS) \
-D$(ARCH)=1 -D$(OS)=1 -D$(COMP)=1 \
-fPIC -shared $(INCLUDE) $^ $(LIBS) \
$(FRAMEWORKS) -o libhandmade.so
$(EXE): sdl_handmade.c libhandmade
@ $(CC) $(FLAGS) $(UFLAGS) $(INCLUDE) sdl_handmade.c $(LIBS) \
$(FRAMEWORKS) -o $@ $(ifneq $(filter $(DETECTED_OS), macos linux), \
$(CC) $(CFLAGS) $(FLAGS) \
-D$(ARCH)=1 -D$(OS)=1 -D$(COMP)=1 \
$(INCLUDE) $< $(LIBS) \
$(FRAMEWORKS) -o $@ $(ifneq $(filter $(OS), OS_MACOS OS_LINUX), \
/link /FORCE:MULTIPLE)
watch:
@ while true; do \
inotifywait -q -q -e 'modify' . && clear && make -B; \
done
run:
@ ./$(EXE)
tags: $(OBJS)
@ ctags -R *.h *.c
clean:
@rm -rf $(EXE) $(EXE).dSYM libhandmade.so libhandmade.so.dSYM tags
@ rm -rf $(EXE) $(EXE).dSYM libhandmade.so libhandmade.so.dSYM