ref: 2a497a4aaec0085b839865f738acdd938bf75300
parent: d76b074aa0c54cbb5e6d5cf07c50db37d09926a5
author: Clownacy <Clownacy@users.noreply.github.com>
date: Wed Jan 15 02:21:41 EST 2020
Backport the enhanced branch's C support Currently, the Makefile only supports C++, despite Glad being C.
--- a/Makefile
+++ b/Makefile
@@ -8,6 +8,7 @@
# Default options
RENDERER = SDLTexture
+ALL_CFLAGS = $(CFLAGS)
ALL_CXXFLAGS = $(CXXFLAGS)
ALL_LDFLAGS = $(LDFLAGS)
ALL_LIBS = $(LIBS)
@@ -17,11 +18,13 @@
endif
ifeq ($(RELEASE), 1)
+ ALL_CFLAGS += -O3 -DNDEBUG
ALL_CXXFLAGS += -O3 -DNDEBUG
ALL_LDFLAGS += -s
FILENAME_DEF = CSE2$(EXE_EXTENSION)
DOCONFIG_FILENAME_DEF = DoConfig$(EXE_EXTENSION)
else
+ ALL_CFLAGS += -Og -ggdb3
ALL_CXXFLAGS += -Og -ggdb3
FILENAME_DEF = CSE2_debug$(EXE_EXTENSION)
DOCONFIG_FILENAME_DEF = DoConfig_debug$(EXE_EXTENSION)
@@ -30,7 +33,7 @@
ifeq ($(JAPANESE), 1)
DATA_DIRECTORY = $(ASSETS_DIRECTORY)/data_jp
- CSE2_CXXFLAGS += -DJAPANESE
+ DEFINES += -DJAPANESE
else
DATA_DIRECTORY = $(ASSETS_DIRECTORY)/data_en
endif
@@ -39,14 +42,15 @@
DOCONFIG_FILENAME ?= $(DOCONFIG_FILENAME_DEF)
ifeq ($(FIX_BUGS), 1)
- CSE2_CXXFLAGS += -DFIX_BUGS
+ DEFINES += -DFIX_BUGS
endif
ifeq ($(DEBUG_SAVE), 1)
- CSE2_CXXFLAGS += -DDEBUG_SAVE
+ DEFINES += -DDEBUG_SAVE
endif
ifeq ($(WARNINGS), 1)
+ ALL_CFLAGS += -Wall -Wextra -pedantic
ALL_CXXFLAGS += -Wall -Wextra -pedantic
endif
@@ -53,6 +57,7 @@
ifeq ($(WARNINGS_ALL), 1)
ifneq ($(findstring clang,$(CXX)),)
# Use clang-specific flag -Weverything
+ ALL_CFLAGS += -Weverything
ALL_CXXFLAGS += -Weverything
else
$(warning Couldn't activate all warnings (unsupported compiler))
@@ -60,9 +65,13 @@
endif
ifeq ($(WARNINGS_FATAL), 1)
+ ALL_CFLAGS += -Werror
ALL_CXXFLAGS += -Werror
endif
+ALL_CFLAGS += -std=c99 -MMD -MP -MF $@.d
+CSE2_CFLAGS += $(shell pkg-config sdl2 --cflags) $(shell pkg-config freetype2 --cflags)
+
ALL_CXXFLAGS += -std=c++98 -MMD -MP -MF $@.d
CSE2_CXXFLAGS += $(shell pkg-config sdl2 --cflags) $(shell pkg-config freetype2 --cflags)
@@ -225,6 +234,7 @@
ifeq ($(RENDERER), OpenGL3)
SOURCES += src/Backends/Rendering/OpenGL3 external/glad/src/glad
+ CSE2_CFLAGS += -Iexternal/glad/include
CSE2_CXXFLAGS += -Iexternal/glad/include
ifeq ($(WINDOWS), 1)
@@ -262,15 +272,20 @@
$(info Linking $@)
@$(CXX) $(ALL_CXXFLAGS) $(CSE2_CXXFLAGS) $(ALL_LDFLAGS) $^ -o $@ $(ALL_LIBS) $(CSE2_LIBS)
+obj/$(FILENAME)/%.o: %.c
+ @mkdir -p $(@D)
+ $(info Compiling $<)
+ @$(CC) $(ALL_CFLAGS) $(CSE2_CFLAGS) $(DEFINES) $< -o $@ -c
+
obj/$(FILENAME)/%.o: %.cpp
@mkdir -p $(@D)
$(info Compiling $<)
- @$(CXX) $(ALL_CXXFLAGS) $(CSE2_CXXFLAGS) $< -o $@ -c
+ @$(CXX) $(ALL_CXXFLAGS) $(CSE2_CXXFLAGS) $(DEFINES) $< -o $@ -c
obj/$(FILENAME)/src/Resource.o: src/Resource.cpp $(addprefix src/Resource/, $(addsuffix .h, $(RESOURCES)))
@mkdir -p $(@D)
$(info Compiling $<)
- @$(CXX) $(ALL_CXXFLAGS) $(CSE2_CXXFLAGS) $< -o $@ -c
+ @$(CXX) $(ALL_CXXFLAGS) $(CSE2_CXXFLAGS) $(DEFINES) $< -o $@ -c
src/Resource/%.h: $(ASSETS_DIRECTORY)/resources/% obj/bin2h
@mkdir -p $(@D)
--
⑨