shithub: cstory

Download patch

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)
--