Remove the Makefile
Made redundant by CMake, and it's an absolute pain to maintain.
This commit is contained in:
parent
199e21623e
commit
d7ca8b3874
3 changed files with 13 additions and 372 deletions
50
.travis.yml
50
.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
|
||||
|
|
307
Makefile
307
Makefile
|
@ -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
|
28
README.md
28
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.
|
||||
|
|
Loading…
Add table
Reference in a new issue