I’m attempting to set up a compilation pipeline for this game, and have so far had the most success with MSYS2, but there are issues with the sound library inclusion.
With SOUND=1 or SOUND=0:
/bin/sh: astyle: command not found
#define VERSION "0.C-12789-g26a3dfe"
Cannot run an astyle check, your system either does not have astyle, or it is too old.
tools/json_format_check.sh
g++ -DRELEASE -DGIT_VERSION -DTILES -DLOCALIZE -ffast-math -Os -Wall -Wextra -Werror --std=c++11 -MMD -m64 -IC:/msys64/mingw64/include/SDL2 -DSDL_SOUND -IC:/msys64/mingw64/include -DLUA -I/mingw64/include/SDL2 -IC:/msys64/mingw64/include/SDL2 -IC:/msys64/mingw64/include/SDL2 -c src/version.cpp -o objwin/tiles/version.o
g++ -Wl,-stack,12000000,-subsystem,windows -o cataclysm-tiles.exe ...things.o... -s -m64 -static -lintl -liconv -LC:/msys64/mingw64/lib -lSDL2_mixer -lmingw32 -lSDL2 -lpthread -lmad -LC:/msys64/mingw64/lib -llua -lm -L/mingw64/lib -lmingw32 -lSDL2 -mwindows -lSDL2_ttf -lSDL2_image -lfreetype -lpng -lz -ltiff -lbz2 -lharfbuzz -lglib-2.0 -llzma -lws2_32 -lintl -liconv -lwebp -ljpeg -luuid -lgdi32 -lwinmm -limm32 -lole32 -loleaut32 -lversion
C:/msys64/mingw64/lib\libSDL2_mixer.a(dynamic_modplug.o):(.text+0xd): undefined reference to `__imp_ModPlug_Load'
C:/msys64/mingw64/lib\libSDL2_mixer.a(dynamic_modplug.o):(.text+0x1b): undefined reference to `__imp_ModPlug_Unload'
C:/msys64/mingw64/lib\libSDL2_mixer.a(dynamic_modplug.o):(.text+0x29): undefined reference to `__imp_ModPlug_Read'
C:/msys64/mingw64/lib\libSDL2_mixer.a(dynamic_modplug.o):(.text+0x37): undefined reference to `__imp_ModPlug_Seek'
C:/msys64/mingw64/lib\libSDL2_mixer.a(dynamic_modplug.o):(.text+0x45): undefined reference to `__imp_ModPlug_GetSettings'
C:/msys64/mingw64/lib\libSDL2_mixer.a(dynamic_modplug.o):(.text+0x53): undefined reference to `__imp_ModPlug_SetSettings'
C:/msys64/mingw64/lib\libSDL2_mixer.a(dynamic_modplug.o):(.text+0x61): undefined reference to `__imp_ModPlug_SetMasterVolume'
C:/msys64/mingw64/lib\libSDL2_mixer.a(dynamic_fluidsynth.o):(.text+0x11): undefined reference to `__imp_delete_fluid_player'
C:/msys64/mingw64/lib\libSDL2_mixer.a(dynamic_fluidsynth.o):(.text+0x1f): undefined reference to `__imp_delete_fluid_settings'
C:/msys64/mingw64/lib\libSDL2_mixer.a(dynamic_fluidsynth.o):(.text+0x2d): undefined reference to `__imp_delete_fluid_synth'
C:/msys64/mingw64/lib\libSDL2_mixer.a(dynamic_fluidsynth.o):(.text+0x3b): undefined reference to `__imp_fluid_player_add'
C:/msys64/mingw64/lib\libSDL2_mixer.a(dynamic_fluidsynth.o):(.text+0x49): undefined reference to `__imp_fluid_player_add_mem'
C:/msys64/mingw64/lib\libSDL2_mixer.a(dynamic_fluidsynth.o):(.text+0x57): undefined reference to `__imp_fluid_player_get_status'
C:/msys64/mingw64/lib\libSDL2_mixer.a(dynamic_fluidsynth.o):(.text+0x65): undefined reference to `__imp_fluid_player_play'
C:/msys64/mingw64/lib\libSDL2_mixer.a(dynamic_fluidsynth.o):(.text+0x73): undefined reference to `__imp_fluid_player_set_loop'
C:/msys64/mingw64/lib\libSDL2_mixer.a(dynamic_fluidsynth.o):(.text+0x81): undefined reference to `__imp_fluid_player_stop'
C:/msys64/mingw64/lib\libSDL2_mixer.a(dynamic_fluidsynth.o):(.text+0x8f): undefined reference to `__imp_fluid_settings_setnum'
C:/msys64/mingw64/lib\libSDL2_mixer.a(dynamic_fluidsynth.o):(.text+0x9d): undefined reference to `__imp_fluid_synth_get_settings'
C:/msys64/mingw64/lib\libSDL2_mixer.a(dynamic_fluidsynth.o):(.text+0xab): undefined reference to `__imp_fluid_synth_set_gain'
C:/msys64/mingw64/lib\libSDL2_mixer.a(dynamic_fluidsynth.o):(.text+0xb9): undefined reference to `__imp_fluid_synth_sfload'
C:/msys64/mingw64/lib\libSDL2_mixer.a(dynamic_fluidsynth.o):(.text+0xc7): undefined reference to `__imp_fluid_synth_write_s16'
C:/msys64/mingw64/lib\libSDL2_mixer.a(dynamic_fluidsynth.o):(.text+0xd5): undefined reference to `__imp_new_fluid_player'
C:/msys64/mingw64/lib\libSDL2_mixer.a(dynamic_fluidsynth.o):(.text+0xe3): undefined reference to `__imp_new_fluid_settings'
C:/msys64/mingw64/lib\libSDL2_mixer.a(dynamic_fluidsynth.o):(.text+0xf1): undefined reference to `__imp_new_fluid_synth'
C:/msys64/mingw64/lib\libSDL2_mixer.a(dynamic_ogg.o):(.rdata$.refptr.ov_time_seek[.refptr.ov_time_seek]+0x0): undefined reference to `ov_time_seek'
C:/msys64/mingw64/lib\libSDL2_mixer.a(dynamic_ogg.o):(.rdata$.refptr.ov_read[.refptr.ov_read]+0x0): undefined reference to `ov_read'
C:/msys64/mingw64/lib\libSDL2_mixer.a(dynamic_ogg.o):(.rdata$.refptr.ov_pcm_total[.refptr.ov_pcm_total]+0x0): undefined reference to `ov_pcm_total'
C:/msys64/mingw64/lib\libSDL2_mixer.a(dynamic_ogg.o):(.rdata$.refptr.ov_open_callbacks[.refptr.ov_open_callbacks]+0x0): undefined reference to `ov_open_callbacks'
C:/msys64/mingw64/lib\libSDL2_mixer.a(dynamic_ogg.o):(.rdata$.refptr.ov_info[.refptr.ov_info]+0x0): undefined reference to `ov_info'
C:/msys64/mingw64/lib\libSDL2_mixer.a(dynamic_ogg.o):(.rdata$.refptr.ov_clear[.refptr.ov_clear]+0x0): undefined reference to `ov_clear'
C:/msys64/mingw64/lib\libSDL2_mixer.a(dynamic_flac.o):(.rdata$.refptr.FLAC__stream_decoder_get_state[.refptr.FLAC__stream_decoder_get_state]+0x0): undefined reference to `FLAC__stream_decoder_get_state'
C:/msys64/mingw64/lib\libSDL2_mixer.a(dynamic_flac.o):(.rdata$.refptr.FLAC__stream_decoder_seek_absolute[.refptr.FLAC__stream_decoder_seek_absolute]+0x0): undefined reference to `FLAC__stream_decoder_seek_absolute'
C:/msys64/mingw64/lib\libSDL2_mixer.a(dynamic_flac.o):(.rdata$.refptr.FLAC__stream_decoder_process_until_end_of_stream[.refptr.FLAC__stream_decoder_process_until_end_of_stream]+0x0): undefined reference to `FLAC__stream_decoder_process_until_end_of_stream'
C:/msys64/mingw64/lib\libSDL2_mixer.a(dynamic_flac.o):(.rdata$.refptr.FLAC__stream_decoder_process_until_end_of_metadata[.refptr.FLAC__stream_decoder_process_until_end_of_metadata]+0x0): undefined reference to `FLAC__stream_decoder_process_until_end_of_metadata'
C:/msys64/mingw64/lib\libSDL2_mixer.a(dynamic_flac.o):(.rdata$.refptr.FLAC__stream_decoder_process_single[.refptr.FLAC__stream_decoder_process_single]+0x0): undefined reference to `FLAC__stream_decoder_process_single'
C:/msys64/mingw64/lib\libSDL2_mixer.a(dynamic_flac.o):(.rdata$.refptr.FLAC__stream_decoder_flush[.refptr.FLAC__stream_decoder_flush]+0x0): undefined reference to `FLAC__stream_decoder_flush'
C:/msys64/mingw64/lib\libSDL2_mixer.a(dynamic_flac.o):(.rdata$.refptr.FLAC__stream_decoder_finish[.refptr.FLAC__stream_decoder_finish]+0x0): undefined reference to `FLAC__stream_decoder_finish'
C:/msys64/mingw64/lib\libSDL2_mixer.a(dynamic_flac.o):(.rdata$.refptr.FLAC__stream_decoder_init_stream[.refptr.FLAC__stream_decoder_init_stream]+0x0): undefined reference to `FLAC__stream_decoder_init_stream'
C:/msys64/mingw64/lib\libSDL2_mixer.a(dynamic_flac.o):(.rdata$.refptr.FLAC__stream_decoder_delete[.refptr.FLAC__stream_decoder_delete]+0x0): undefined reference to `FLAC__stream_decoder_delete'
C:/msys64/mingw64/lib\libSDL2_mixer.a(dynamic_flac.o):(.rdata$.refptr.FLAC__stream_decoder_new[.refptr.FLAC__stream_decoder_new]+0x0): undefined reference to `FLAC__stream_decoder_new'
collect2.exe: error: ld returned 1 exit status
Makefile:559: recipe for target 'cataclysm-tiles.exe' failed
make: *** [cataclysm-tiles.exe] Error 1
Without SOUND:
/bin/sh: astyle: command not found
Cannot run an astyle check, your system either does not have astyle, or it is too old.
tools/json_format_check.sh
g++ -Wl,-stack,12000000,-subsystem,windows -o cataclysm-tiles.exe ...things.o... -s -m64 -static -lintl -liconv -LC:/msys64/mingw64/lib -llua -lm -L/mingw64/lib -lmingw32 -lSDL2 -mwindows -lSDL2_ttf -lSDL2_image -lfreetype -lpng -lz -ltiff -lbz2 -lharfbuzz -lglib-2.0 -llzma -lws2_32 -lintl -liconv -lwebp -ljpeg -luuid -lgdi32 -lwinmm -limm32 -lole32 -loleaut32 -lversion
objwin/tiles/sounds.o:sounds.cpp:(.text+0x467): undefined reference to `Mix_Playing'
objwin/tiles/sounds.o:sounds.cpp:(.text+0x47b): undefined reference to `Mix_FadeOutChannel'
objwin/tiles/sounds.o:sounds.cpp:(.text+0x55e): undefined reference to `Mix_FadeOutChannel'
objwin/tiles/sounds.o:sounds.cpp:(.text+0x579): undefined reference to `Mix_FadeOutGroup'
objwin/tiles/sounds.o:sounds.cpp:(.text+0x5f6): undefined reference to `Mix_FadeOutGroup'
objwin/tiles/sounds.o:sounds.cpp:(.text+0x669): undefined reference to `Mix_FadeOutGroup'
objwin/tiles/sounds.o:sounds.cpp:(.text+0x6c1): undefined reference to `Mix_FadeOutGroup'
objwin/tiles/sounds.o:sounds.cpp:(.text+0x774): undefined reference to `Mix_FadeOutGroup'
objwin/tiles/sounds.o:sounds.cpp:(.text+0x7e1): more undefined references to `Mix_FadeOutGroup' follow
objwin/tiles/sounds.o:sounds.cpp:(.text+0x1092): undefined reference to `Mix_FadeOutChannel'
objwin/tiles/sounds.o:sounds.cpp:(.text+0x11d2): undefined reference to `Mix_FadeOutGroup'
objwin/tiles/sounds.o:sounds.cpp:(.text+0x127c): undefined reference to `Mix_FadeOutGroup'
objwin/tiles/sounds.o:sounds.cpp:(.text+0x12d1): undefined reference to `Mix_FadeOutGroup'
objwin/tiles/sounds.o:sounds.cpp:(.text+0x12e0): undefined reference to `Mix_FadeOutGroup'
objwin/tiles/sounds.o:sounds.cpp:(.text+0x135f): undefined reference to `Mix_FadeOutGroup'
objwin/tiles/sounds.o:sounds.cpp:(.text+0x136e): more undefined references to `Mix_FadeOutGroup' follow
objwin/tiles/sounds.o:sounds.cpp:(.text+0x45e): undefined reference to `Mix_FadeOutChannel'
objwin/tiles/sdltiles.o:sdltiles.cpp:(.text+0x237): undefined reference to `Mix_GetChunk'
objwin/tiles/sdltiles.o:sdltiles.cpp:(.text+0x2d36): undefined reference to `Mix_CloseAudio'
objwin/tiles/sdltiles.o:sdltiles.cpp:(.text+0x2fea): undefined reference to `Mix_LoadMUS'
objwin/tiles/sdltiles.o:sdltiles.cpp:(.text+0x30ac): undefined reference to `Mix_VolumeMusic'
objwin/tiles/sdltiles.o:sdltiles.cpp:(.text+0x30c2): undefined reference to `Mix_PlayMusic'
objwin/tiles/sdltiles.o:sdltiles.cpp:(.text+0x315d): undefined reference to `Mix_HookMusicFinished'
objwin/tiles/sdltiles.o:sdltiles.cpp:(.text+0x31b2): undefined reference to `Mix_HaltMusic'
objwin/tiles/sdltiles.o:sdltiles.cpp:(.text+0x31be): undefined reference to `Mix_FreeMusic'
objwin/tiles/sdltiles.o:sdltiles.cpp:(.text+0x34cb): undefined reference to `Mix_VolumeChunk'
objwin/tiles/sdltiles.o:sdltiles.cpp:(.text+0x34e5): undefined reference to `Mix_PlayChannelTimed'
objwin/tiles/sdltiles.o:sdltiles.cpp:(.text+0x3543): undefined reference to `Mix_ChannelFinished'
objwin/tiles/sdltiles.o:sdltiles.cpp:(.text+0x35bc): undefined reference to `Mix_VolumeChunk'
objwin/tiles/sdltiles.o:sdltiles.cpp:(.text+0x35d6): undefined reference to `Mix_PlayChannelTimed'
objwin/tiles/sdltiles.o:sdltiles.cpp:(.text+0x35e6): undefined reference to `Mix_SetPosition'
objwin/tiles/sdltiles.o:sdltiles.cpp:(.text+0x3687): undefined reference to `Mix_VolumeChunk'
objwin/tiles/sdltiles.o:sdltiles.cpp:(.text+0x36ad): undefined reference to `Mix_FadeInChannelTimed'
objwin/tiles/sdltiles.o:sdltiles.cpp:(.text+0x4cde): undefined reference to `Mix_LoadWAV_RW'
objwin/tiles/sdltiles.o:sdltiles.cpp:(.text+0x4cf2): undefined reference to `Mix_FreeChunk'
objwin/tiles/sdltiles.o:sdltiles.cpp:(.text+0x5da1): undefined reference to `Mix_OpenAudio'
objwin/tiles/sdltiles.o:sdltiles.cpp:(.text+0x5daf): undefined reference to `Mix_AllocateChannels'
objwin/tiles/sdltiles.o:sdltiles.cpp:(.text+0x5e28): undefined reference to `Mix_ReserveChannels'
objwin/tiles/sdltiles.o:sdltiles.cpp:(.text+0x5e3d): undefined reference to `Mix_GroupChannels'
objwin/tiles/sdltiles.o:sdltiles.cpp:(.text+0x5e4f): undefined reference to `Mix_GroupChannels'
objwin/tiles/sdltiles.o:sdltiles.cpp:(.text+0x5e64): undefined reference to `Mix_GroupChannels'
objwin/tiles/sdltiles.o:sdltiles.cpp:(.text+0x5e79): undefined reference to `Mix_GroupChannels'
objwin/tiles/sdltiles.o:sdltiles.cpp:(.text+0xf3): undefined reference to `Mix_FreeChunk'
collect2.exe: error: ld returned 1 exit status
Makefile:559: recipe for target 'cataclysm-tiles.exe' failed
make: *** [cataclysm-tiles.exe] Error 1
I’ve attempted to include more libraries, as indicated in http://smf.cataclysmdda.com/index.php?topic=11010.0, but this has been insufficient, and I do not know the correct library names to include, nor do I know why sound libraries are even being included when I very much do not need or want it.