Remove core.h, SDL2->SDL3, Makefile cleanup, ansi C, 80 char.
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user