From d7ca8b3874ba13acc2ab50954e55fcb5a4744f54 Mon Sep 17 00:00:00 2001 From: Clownacy Date: Thu, 2 Apr 2020 14:23:10 +0100 Subject: [PATCH] Remove the Makefile Made redundant by CMake, and it's an absolute pain to maintain. --- .travis.yml | 50 ++------- Makefile | 307 ---------------------------------------------------- README.md | 28 +---- 3 files changed, 13 insertions(+), 372 deletions(-) delete mode 100644 Makefile diff --git a/.travis.yml b/.travis.yml index 373dcf42..d666bee3 100644 --- a/.travis.yml +++ b/.travis.yml @@ -48,24 +48,11 @@ addons: update: true env: - - BUILD_SYSTEM=make RENDERER=Software - - BUILD_SYSTEM=make RENDERER=SDLSurface - - BUILD_SYSTEM=make RENDERER=SDLTexture - - BUILD_SYSTEM=make RENDERER=OpenGL3 - - BUILD_SYSTEM=make RENDERER=OpenGLES2 - - BUILD_SYSTEM=cmake RENDERER=Software - - BUILD_SYSTEM=cmake RENDERER=SDLSurface - - BUILD_SYSTEM=cmake RENDERER=SDLTexture - - BUILD_SYSTEM=cmake RENDERER=OpenGL3 - - BUILD_SYSTEM=cmake RENDERER=OpenGLES2 - -jobs: - exclude: - # Apple's OpenGL is in a non-standard location, so these builds don't work - - os: osx - env: BUILD_SYSTEM=make RENDERER=OpenGL3 - - os: osx - env: BUILD_SYSTEM=make RENDERER=OpenGLES2 + - RENDERER=Software + - RENDERER=SDLSurface + - RENDERER=SDLTexture + - RENDERER=OpenGL3 + - RENDERER=OpenGLES2 before_install: # Set URL for Discord send script @@ -78,9 +65,6 @@ before_install: # Display Travis OS name - echo $TRAVIS_OS_NAME - # Display build type - - echo $BUILD_SYSTEM - # The following Homebrew packages aren't linked by default, and need to be prepended to the path explicitly. - if [ "$TRAVIS_OS_NAME" = "osx" ]; then export PATH="$(brew --prefix llvm)/bin:$PATH"; @@ -122,25 +106,15 @@ install: fi before_script: - - | - if [ "$BUILD_SYSTEM" == "cmake" ]; then - # Make build directory and generate CMake build files - mkdir -p ${CMAKE_BUILD_DIR} && cd ${CMAKE_BUILD_DIR} - cmake .. -DCMAKE_BUILD_TYPE=Release -DFIX_BUGS=ON -DRENDERER=$RENDERER -DCMAKE_C_FLAGS="-Wall -Wextra -pedantic" -DCMAKE_CXX_FLAGS="-Wall -Wextra -pedantic" - cd .. - fi + # Make build directory and generate CMake build files + - mkdir -p ${CMAKE_BUILD_DIR} && cd ${CMAKE_BUILD_DIR} + - cmake .. -DCMAKE_BUILD_TYPE=Release -DFIX_BUGS=ON -DRENDERER=$RENDERER -DCMAKE_C_FLAGS="-Wall -Wextra -pedantic" -DCMAKE_CXX_FLAGS="-Wall -Wextra -pedantic" + - cd .. script: - - | - if [ "$BUILD_SYSTEM" == "cmake" ]; then - # CMake build - cd ${CMAKE_BUILD_DIR} - cmake --build . --config Release --parallel $JOBS - cd .. - else - # Make build - make -j $JOBS FIX_BUGS=1 RELEASE=1 RENDERER=$RENDERER CFLAGS="-Wall -Wextra -pedantic" CXXFLAGS="-Wall -Wextra -pedantic" - fi + - cd ${CMAKE_BUILD_DIR} + - cmake --build . --config Release --parallel $JOBS + - cd .. after_success: # Send success notification to Discord through DISCORD_WEBHOOK_URL diff --git a/Makefile b/Makefile deleted file mode 100644 index 5bc75e63..00000000 --- a/Makefile +++ /dev/null @@ -1,307 +0,0 @@ -NATIVECC ?= cc -NATIVECXX ?= c++ -WINDRES ?= windres -PKGCONFIG ?= pkg-config - -ASSETS_DIRECTORY = assets - -# Default options -BACKEND_RENDERER = SDLTexture -BACKEND_AUDIO = SDL2 - -ALL_CFLAGS = $(CFLAGS) -ALL_CXXFLAGS = $(CXXFLAGS) -ALL_LDFLAGS = $(LDFLAGS) -ALL_LIBS = $(LIBS) - -ifeq ($(WINDOWS), 1) - EXE_EXTENSION = .exe -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) -endif - -ifeq ($(JAPANESE), 1) - BUILD_DIRECTORY = game_japanese - - DEFINES += -DJAPANESE -else - BUILD_DIRECTORY = game_english -endif - -FILENAME ?= $(FILENAME_DEF) -DOCONFIG_FILENAME ?= $(DOCONFIG_FILENAME_DEF) - -ifeq ($(FIX_BUGS), 1) - DEFINES += -DFIX_BUGS -endif - -ifeq ($(DEBUG_SAVE), 1) - DEFINES += -DDEBUG_SAVE -endif - -ALL_CFLAGS += -std=c99 -MMD -MP -MF $@.d -CSE2_CFLAGS += $(shell $(PKGCONFIG) sdl2 --cflags) $(shell $(PKGCONFIG) freetype2 --cflags) - -ALL_CXXFLAGS += -std=c++11 -MMD -MP -MF $@.d -CSE2_CXXFLAGS += $(shell $(PKGCONFIG) sdl2 --cflags) $(shell $(PKGCONFIG) freetype2 --cflags) - -ifeq ($(STATIC), 1) - ALL_LDFLAGS += -static - CSE2_LIBS += $(shell $(PKGCONFIG) sdl2 --libs --static) $(shell $(PKGCONFIG) freetype2 --libs --static) -lfreetype - DOCONFIG_LIBS += $(shell fltk-config --cxxflags --libs --ldstaticflags) -else - CSE2_LIBS += $(shell $(PKGCONFIG) sdl2 --libs) $(shell $(PKGCONFIG) freetype2 --libs) - DOCONFIG_LIBS += $(shell fltk-config --cxxflags --libs --ldflags) -endif - -SOURCES = \ - src/ArmsItem.cpp \ - src/Back.cpp \ - src/Bitmap.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/Draw.cpp \ - src/Ending.cpp \ - src/Escape.cpp \ - src/Fade.cpp \ - src/File.cpp \ - src/Flags.cpp \ - src/Flash.cpp \ - src/Font.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/Random.cpp \ - src/Resource.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 \ - BITMAP/Credit02.bmp \ - BITMAP/Credit03.bmp \ - BITMAP/Credit04.bmp \ - BITMAP/Credit05.bmp \ - BITMAP/Credit06.bmp \ - BITMAP/Credit07.bmp \ - BITMAP/Credit08.bmp \ - BITMAP/Credit09.bmp \ - BITMAP/Credit10.bmp \ - BITMAP/Credit11.bmp \ - BITMAP/Credit12.bmp \ - BITMAP/Credit14.bmp \ - BITMAP/Credit15.bmp \ - BITMAP/Credit16.bmp \ - BITMAP/Credit17.bmp \ - BITMAP/Credit18.bmp \ - CURSOR/CURSOR_IKA.bmp \ - CURSOR/CURSOR_NORMAL.bmp \ - ORG/Access.org \ - ORG/Anzen.org \ - ORG/Balcony.org \ - ORG/Ballos.org \ - ORG/BreakDown.org \ - ORG/Cemetery.org \ - ORG/Curly.org \ - ORG/Dr.org \ - ORG/Ending.org \ - ORG/Escape.org \ - ORG/Fanfale1.org \ - ORG/Fanfale2.org \ - ORG/Fanfale3.org \ - ORG/FireEye.org \ - ORG/Gameover.org \ - ORG/Ginsuke.org \ - ORG/Grand.org \ - ORG/Gravity.org \ - ORG/Hell.org \ - ORG/ironH.org \ - ORG/Jenka.org \ - ORG/Jenka2.org \ - ORG/Kodou.org \ - ORG/LastBtl3.org \ - ORG/LastBtl.org \ - ORG/LastCave.org \ - ORG/Marine.org \ - ORG/Maze.org \ - ORG/MDown2.org \ - ORG/Mura.org \ - ORG/Oside.org \ - ORG/Plant.org \ - ORG/quiet.org \ - ORG/Requiem.org \ - ORG/Toroko.org \ - ORG/Vivi.org \ - ORG/Wanpak2.org \ - ORG/Wanpaku.org \ - ORG/Weed.org \ - ORG/White.org \ - ORG/XXXX.org \ - ORG/Zonbie.org \ - WAVE/Wave.dat - -ifeq ($(JAPANESE), 1) - RESOURCES += BITMAP/pixel_jp.bmp -else - RESOURCES += BITMAP/pixel.bmp -endif - -ifneq ($(WINDOWS), 1) - RESOURCES += ICON/ICON_MINI.bmp -endif - -ifeq ($(BACKEND_RENDERER), OpenGL3) - SOURCES += src/Backends/Rendering/OpenGL3.cpp external/glad/src/glad.c - - ifeq ($(WINDOWS), 1) - CSE2_LIBS += -lopengl32 - else - CSE2_LIBS += -lGL -ldl - endif -else ifeq ($(BACKEND_RENDERER), OpenGLES2) - SOURCES += src/Backends/Rendering/OpenGLES2.cpp - CSE2_CFLAGS += $(shell $(PKGCONFIG) --cflags glesv2) - CSE2_CXXFLAGS += $(shell $(PKGCONFIG) --cflags glesv2) - CSE2_LIBS += $(shell $(PKGCONFIG) --libs glesv2) -else ifeq ($(BACKEND_RENDERER), SDLTexture) - SOURCES += src/Backends/Rendering/SDLTexture.cpp -else ifeq ($(BACKEND_RENDERER), SDLSurface) - SOURCES += src/Backends/Rendering/SDLSurface.cpp -else ifeq ($(BACKEND_RENDERER), Software) - SOURCES += src/Backends/Rendering/Software.cpp -else - $(error Invalid BACKEND_RENDERER selected) -endif - -ifeq ($(BACKEND_AUDIO), SDL2) - SOURCES += src/Backends/Audio/SDL2.cpp src/Backends/Audio/SoftwareMixer.cpp -else ifeq ($(BACKEND_AUDIO), miniaudio) - SOURCES += src/Backends/Audio/miniaudio.cpp src/Backends/Audio/SoftwareMixer.cpp - CSE2_LIBS += -lm -lpthread - - ifneq ($(WINDOWS), 1) - CSE2_LIBS += -ldl - endif -else - $(error Invalid BACKEND_AUDIO selected) -endif - -OBJECTS = $(addprefix obj/$(FILENAME)/, $(addsuffix .o, $(SOURCES))) -DEPENDENCIES = $(addprefix obj/$(FILENAME)/, $(addsuffix .o.d, $(SOURCES))) - -ifeq ($(WINDOWS), 1) - OBJECTS += obj/$(FILENAME)/windows_resources.o -endif - -all: $(BUILD_DIRECTORY)/$(FILENAME) $(BUILD_DIRECTORY)/$(DOCONFIG_FILENAME) - $(info Finished) - -$(BUILD_DIRECTORY)/$(FILENAME): $(OBJECTS) - @mkdir -p $(@D) - $(info Linking $@) - @$(CXX) $(ALL_CXXFLAGS) $(CSE2_CXXFLAGS) $(ALL_LDFLAGS) $^ -o $@ $(ALL_LIBS) $(CSE2_LIBS) - -obj/$(FILENAME)/%.c.o: %.c - @mkdir -p $(@D) - $(info Compiling $<) - @$(CC) $(ALL_CFLAGS) $(CSE2_CFLAGS) $(DEFINES) $< -o $@ -c - -obj/$(FILENAME)/%.cpp.o: %.cpp - @mkdir -p $(@D) - $(info Compiling $<) - @$(CXX) $(ALL_CXXFLAGS) $(CSE2_CXXFLAGS) $(DEFINES) $< -o $@ -c - -obj/$(FILENAME)/src/Resource.cpp.o: src/Resource.cpp $(addprefix src/Resource/, $(addsuffix .h, $(RESOURCES))) - @mkdir -p $(@D) - $(info Compiling $<) - @$(CXX) $(ALL_CXXFLAGS) $(CSE2_CXXFLAGS) $(DEFINES) $< -o $@ -c - -src/Resource/%.h: $(ASSETS_DIRECTORY)/resources/% obj/bin2h - @mkdir -p $(@D) - $(info Converting $<) - @obj/bin2h $< $@ - -obj/bin2h: bin2h/bin2h.c - @mkdir -p $(@D) - $(info Compiling $^) - @$(NATIVECC) -O3 -s -std=c90 -Wall -Wextra -pedantic $^ -o $@ - -include $(wildcard $(DEPENDENCIES)) - -obj/$(FILENAME)/windows_resources.o: $(ASSETS_DIRECTORY)/resources/CSE2.rc $(ASSETS_DIRECTORY)/resources/resource1.h $(ASSETS_DIRECTORY)/resources/afxres.h $(ASSETS_DIRECTORY)/resources/ICON/0.ico - @mkdir -p $(@D) - $(info Compiling Windows resource file $<) - @$(WINDRES) $< $@ - -$(BUILD_DIRECTORY)/$(DOCONFIG_FILENAME): DoConfig/DoConfig.cpp - @mkdir -p $(@D) - $(info Linking $@) - @$(CXX) $(ALL_CXXFLAGS) $(ALL_LDFLAGS) $^ -o $@ $(DOCONFIG_LIBS) - -# TODO -clean: - @rm -rf obj diff --git a/README.md b/README.md index 362b4b7d..a7cfa1c4 100644 --- a/README.md +++ b/README.md @@ -48,9 +48,7 @@ In addition, `pkg-config` is required for Makefile builds, and CMake builds that ## Building -### CMake - -This project primarily uses CMake, allowing it to be built with a range of compilers. +This project uses CMake, allowing it to be built with a range of compilers. Switch to the terminal (Visual Studio users should open the [Developer Command Prompt](https://docs.microsoft.com/en-us/dotnet/framework/tools/developer-command-prompt-for-vs)) and `cd` into this folder. After that, generate the files for your build system with: @@ -91,30 +89,6 @@ If you're a Visual Studio user, you can open the generated `CSE2.sln` file inste Once built, the executables can be found in the `game_english`/`game_japanese` folder, depending on the selected language. -### Makefile \[deprecated - use CMake instead\] - -Run 'make' in this folder, preferably with some of the following settings: - -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 ability to drag-and-drop save files onto the window -`BACKEND_RENDERER=OpenGL3` | Use the hardware-accelerated OpenGL 3.2 renderer -`BACKEND_RENDERER=OpenGLES2` | Use the hardware-accelerated OpenGL ES 2.0 renderer -`BACKEND_RENDERER=SDLTexture` | Use the hardware-accelerated SDL2 Texture API renderer (default) -`BACKEND_RENDERER=SDLSurface` | Use the software-rendered SDL2 Surface API renderer -`BACKEND_RENDERER=Software` | Use the hand-written software renderer -`BACKEND_AUDIO=SDL2` | Use the SDL2-driven software audio-mixer -`BACKEND_AUDIO=miniaudio` | Use the miniaudio-driven software audio-mixer -`RELEASE=1` | Compile a release build (optimised, stripped, etc.) -`STATIC=1` | Produce a statically-linked executable (good for Windows builds, so you don't need to bundle DLL files) -`WINDOWS=1` | Build for Windows - -You can pass your own compiler flags by defining `CFLAGS` and `CXXFLAGS`. - -Once built, the executables can be found in the `game_english`/`game_japanese` folder, depending on the selected language. - ## Licensing Being a decompilation, the majority of the code in this project belongs to Daisuke "Pixel" Amaya - not us. We've yet to agree on a licence for our own code.