From a1937b47303467224b8e42e594685821a50c8699 Mon Sep 17 00:00:00 2001 From: Clownacy Date: Wed, 15 Jan 2020 07:45:36 +0000 Subject: [PATCH 1/3] Backport the portable branch's warnings --- Makefile | 19 ++++++++++++++++++- README.md | 3 +++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 24257a80..c7620c55 100644 --- a/Makefile +++ b/Makefile @@ -40,7 +40,24 @@ ifeq ($(DEBUG_SAVE), 1) ALL_CXXFLAGS += -DDEBUG_SAVE endif -ALL_CXXFLAGS += -std=c++98 -Wall -Wextra -pedantic -MMD -MP -MF $@.d +ifeq ($(WARNINGS), 1) + ALL_CXXFLAGS += -Wall -Wextra -pedantic +endif + +ifeq ($(WARNINGS_ALL), 1) + ifneq ($(findstring clang,$(CXX)),) + # Use clang-specific flag -Weverything + ALL_CXXFLAGS += -Weverything + else + $(warning Couldn't activate all warnings (unsupported compiler)) + endif +endif + +ifeq ($(WARNINGS_FATAL), 1) + ALL_CXXFLAGS += -Werror +endif + +ALL_CXXFLAGS += -std=c++98 -MMD -MP -MF $@.d ALL_LIBS += -lkernel32 -lgdi32 -lddraw -ldinput -ldsound -lversion -lshlwapi -limm32 -lwinmm -ldxguid ifeq ($(STATIC), 1) diff --git a/README.md b/README.md index 69dde3fc..fccbb0db 100644 --- a/README.md +++ b/README.md @@ -55,6 +55,9 @@ Name | Function `JAPANESE=1` | Enable the Japanese-language build (instead of the unofficial Aeon Genesis English translation) `FIX_BUGS=1` | Fix various bugs in the game `DEBUG_SAVE=1` | Re-enable the dummied-out 'Debug Save' option, and the ability to drag-and-drop save files onto the window +`WARNINGS=1` | Enable common warnings +`WARNINGS_ALL=1` | Enable ALL warnings (clang only) +`WARNINGS_FATAL=1` | Make all warnings errors ## Licensing From a09f73f2eace8f62cad14efe27348548a729873c Mon Sep 17 00:00:00 2001 From: Clownacy Date: Wed, 15 Jan 2020 07:46:02 +0000 Subject: [PATCH 2/3] Specify that WARNINGS enables compiler warnings --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index fccbb0db..5f1ab0cc 100644 --- a/README.md +++ b/README.md @@ -55,9 +55,9 @@ Name | Function `JAPANESE=1` | Enable the Japanese-language build (instead of the unofficial Aeon Genesis English translation) `FIX_BUGS=1` | Fix various bugs in the game `DEBUG_SAVE=1` | Re-enable the dummied-out 'Debug Save' option, and the ability to drag-and-drop save files onto the window -`WARNINGS=1` | Enable common warnings -`WARNINGS_ALL=1` | Enable ALL warnings (clang only) -`WARNINGS_FATAL=1` | Make all warnings errors +`WARNINGS=1` | Enable common compiler warnings +`WARNINGS_ALL=1` | Enable ALL compiler warnings (clang only) +`WARNINGS_FATAL=1` | Make all compiler warnings errors ## Licensing From dba45f7d0f5b37c2a29171ce5960e1000f42a7e6 Mon Sep 17 00:00:00 2001 From: Clownacy Date: Wed, 15 Jan 2020 07:54:05 +0000 Subject: [PATCH 3/3] Makefile: Specify file extensions This matches the portable branch's CMakeLists.txt, and make mixed C/C++ code less awkward-looking. --- Makefile | 140 +++++++++++++++++++++++++++---------------------------- 1 file changed, 70 insertions(+), 70 deletions(-) diff --git a/Makefile b/Makefile index c7620c55..b2ad0464 100644 --- a/Makefile +++ b/Makefile @@ -65,75 +65,75 @@ ifeq ($(STATIC), 1) endif SOURCES = \ - src/ArmsItem \ - src/Back \ - src/Boss \ - src/BossAlmo1 \ - src/BossAlmo2 \ - src/BossBallos \ - src/BossFrog \ - src/BossIronH \ - src/BossLife \ - src/BossOhm \ - src/BossPress \ - src/BossTwinD \ - src/BossX \ - src/BulHit \ - src/Bullet \ - src/Caret \ - src/Config \ - src/Dialog \ - src/Draw \ - src/Ending \ - src/Escape \ - src/Fade \ - src/Flags \ - src/Flash \ - src/Frame \ - src/Game \ - src/Generic \ - src/GenericLoad \ - src/Input \ - src/KeyControl \ - src/Main \ - src/Map \ - src/MapName \ - src/MiniMap \ - src/MyChar \ - src/MycHit \ - src/MycParam \ - src/NpcAct000 \ - src/NpcAct020 \ - src/NpcAct040 \ - src/NpcAct060 \ - src/NpcAct080 \ - src/NpcAct100 \ - src/NpcAct120 \ - src/NpcAct140 \ - src/NpcAct160 \ - src/NpcAct180 \ - src/NpcAct200 \ - src/NpcAct220 \ - src/NpcAct240 \ - src/NpcAct260 \ - src/NpcAct280 \ - src/NpcAct300 \ - src/NpcAct320 \ - src/NpcAct340 \ - src/NpChar \ - src/NpcHit \ - src/NpcTbl \ - src/Organya \ - src/PixTone \ - src/Profile \ - src/SelStage \ - src/Shoot \ - src/Sound \ - src/Stage \ - src/Star \ - src/TextScr \ - src/Triangle \ - src/ValueView + src/ArmsItem.cpp \ + src/Back.cpp \ + src/Boss.cpp \ + src/BossAlmo1.cpp \ + src/BossAlmo2.cpp \ + src/BossBallos.cpp \ + src/BossFrog.cpp \ + src/BossIronH.cpp \ + src/BossLife.cpp \ + src/BossOhm.cpp \ + src/BossPress.cpp \ + src/BossTwinD.cpp \ + src/BossX.cpp \ + src/BulHit.cpp \ + src/Bullet.cpp \ + src/Caret.cpp \ + src/Config.cpp \ + src/Dialog.cpp \ + src/Draw.cpp \ + src/Ending.cpp \ + src/Escape.cpp \ + src/Fade.cpp \ + src/Flags.cpp \ + src/Flash.cpp \ + src/Frame.cpp \ + src/Game.cpp \ + src/Generic.cpp \ + src/GenericLoad.cpp \ + src/Input.cpp \ + src/KeyControl.cpp \ + src/Main.cpp \ + src/Map.cpp \ + src/MapName.cpp \ + src/MiniMap.cpp \ + src/MyChar.cpp \ + src/MycHit.cpp \ + src/MycParam.cpp \ + src/NpcAct000.cpp \ + src/NpcAct020.cpp \ + src/NpcAct040.cpp \ + src/NpcAct060.cpp \ + src/NpcAct080.cpp \ + src/NpcAct100.cpp \ + src/NpcAct120.cpp \ + src/NpcAct140.cpp \ + src/NpcAct160.cpp \ + src/NpcAct180.cpp \ + src/NpcAct200.cpp \ + src/NpcAct220.cpp \ + src/NpcAct240.cpp \ + src/NpcAct260.cpp \ + src/NpcAct280.cpp \ + src/NpcAct300.cpp \ + src/NpcAct320.cpp \ + src/NpcAct340.cpp \ + src/NpChar.cpp \ + src/NpcHit.cpp \ + src/NpcTbl.cpp \ + src/Organya.cpp \ + src/PixTone.cpp \ + src/Profile.cpp \ + src/SelStage.cpp \ + src/Shoot.cpp \ + src/Sound.cpp \ + src/Stage.cpp \ + src/Star.cpp \ + src/TextScr.cpp \ + src/Triangle.cpp \ + src/ValueView.cpp RESOURCES = \ BITMAP/Credit01.bmp \ @@ -220,7 +220,7 @@ $(BUILD_DIRECTORY)/$(FILENAME): $(OBJECTS) $(info Linking $@) @$(CXX) $(ALL_CXXFLAGS) $(ALL_LDFLAGS) $^ -o $@ $(ALL_LIBS) -obj/$(FILENAME)/%.o: %.cpp +obj/$(FILENAME)/%.cpp.o: %.cpp @mkdir -p $(@D) $(info Compiling $<) @$(CXX) $(ALL_CXXFLAGS) $< -o $@ -c