diff options
author | Jef <jef@targetspot.com> | 2024-09-24 08:54:57 -0400 |
---|---|---|
committer | Jef <jef@targetspot.com> | 2024-09-24 08:54:57 -0400 |
commit | 20d28e80a5c861a9d5f449ea911ab75b4f37ad0d (patch) | |
tree | 12f17f78986871dd2cfb0a56e5e93b545c1ae0d0 /Src/external_dependencies/openmpt-trunk/build/make | |
parent | 537bcbc86291b32fc04ae4133ce4d7cac8ebe9a7 (diff) | |
download | winamp-20d28e80a5c861a9d5f449ea911ab75b4f37ad0d.tar.gz |
Initial community commit
Diffstat (limited to 'Src/external_dependencies/openmpt-trunk/build/make')
19 files changed, 939 insertions, 0 deletions
diff --git a/Src/external_dependencies/openmpt-trunk/build/make/config-afl.mk b/Src/external_dependencies/openmpt-trunk/build/make/config-afl.mk new file mode 100644 index 00000000..7125dd0e --- /dev/null +++ b/Src/external_dependencies/openmpt-trunk/build/make/config-afl.mk @@ -0,0 +1,48 @@ + +CC = contrib/fuzzing/afl/afl-clang-lto +CXX = contrib/fuzzing/afl/afl-clang-lto++ +LD = contrib/fuzzing/afl/afl-clang-lto++ +AR = ar + +ifneq ($(STDCXX),) +CXXFLAGS_STDCXX = -std=$(STDCXX) +else +ifeq ($(shell printf '\n' > bin/empty.cpp ; if $(CXX) -std=c++17 -c bin/empty.cpp -o bin/empty.out > /dev/null 2>&1 ; then echo 'c++17' ; fi ), c++17) +CXXFLAGS_STDCXX = -std=c++17 +endif +endif +CFLAGS_STDC = -std=c99 +CXXFLAGS += $(CXXFLAGS_STDCXX) +CFLAGS += $(CFLAGS_STDC) + +DYNLINK=0 +SHARED_LIB=0 +STATIC_LIB=1 + +CPPFLAGS += +CXXFLAGS += -fPIC -fno-strict-aliasing +CFLAGS += -fPIC -fno-strict-aliasing +LDFLAGS += +LDLIBS += -lm +ARFLAGS := rcs + +CXXFLAGS_WARNINGS += -Wmissing-declarations +CFLAGS_WARNINGS += -Wmissing-prototypes + +ifeq ($(CHECKED_ADDRESS),1) +CXXFLAGS += -fsanitize=address +CFLAGS += -fsanitize=address +endif + +ifeq ($(CHECKED_UNDEFINED),1) +CXXFLAGS += -fsanitize=undefined +CFLAGS += -fsanitize=undefined +endif + +include build/make/warnings-clang.mk + +EXESUFFIX= + +FUZZ=1 +CPPFLAGS += -DMPT_BUILD_FUZZER -DMPT_BUILD_FATAL_ASSERTS + diff --git a/Src/external_dependencies/openmpt-trunk/build/make/config-clang.mk b/Src/external_dependencies/openmpt-trunk/build/make/config-clang.mk new file mode 100644 index 00000000..59981905 --- /dev/null +++ b/Src/external_dependencies/openmpt-trunk/build/make/config-clang.mk @@ -0,0 +1,42 @@ + +CC = $(TOOLCHAIN_PREFIX)clang$(TOOLCHAIN_SUFFIX) +CXX = $(TOOLCHAIN_PREFIX)clang++$(TOOLCHAIN_SUFFIX) +LD = $(TOOLCHAIN_PREFIX)clang++$(TOOLCHAIN_SUFFIX) +AR = $(TOOLCHAIN_PREFIX)ar$(TOOLCHAIN_SUFFIX) + +ifneq ($(STDCXX),) +CXXFLAGS_STDCXX = -std=$(STDCXX) +else +ifeq ($(shell printf '\n' > bin/empty.cpp ; if $(CXX) -std=c++17 -c bin/empty.cpp -o bin/empty.out > /dev/null 2>&1 ; then echo 'c++17' ; fi ), c++17) +CXXFLAGS_STDCXX = -std=c++17 +endif +endif +CFLAGS_STDC = -std=c99 +CXXFLAGS += $(CXXFLAGS_STDCXX) +CFLAGS += $(CFLAGS_STDC) + +CPPFLAGS += +CXXFLAGS += -fPIC +CFLAGS += -fPIC +LDFLAGS += +LDLIBS += -lm +ARFLAGS := rcs + +ifeq ($(OPTIMIZE_LTO),1) +CXXFLAGS += -flto=thin +CFLAGS += -flto=thin +endif + +ifeq ($(CHECKED_ADDRESS),1) +CXXFLAGS += -fsanitize=address +CFLAGS += -fsanitize=address +endif + +ifeq ($(CHECKED_UNDEFINED),1) +CXXFLAGS += -fsanitize=undefined +CFLAGS += -fsanitize=undefined +endif + +include build/make/warnings-clang.mk + +EXESUFFIX= diff --git a/Src/external_dependencies/openmpt-trunk/build/make/config-defaults.mk b/Src/external_dependencies/openmpt-trunk/build/make/config-defaults.mk new file mode 100644 index 00000000..bc765dfe --- /dev/null +++ b/Src/external_dependencies/openmpt-trunk/build/make/config-defaults.mk @@ -0,0 +1,69 @@ + +ifeq ($(HOST),unix) + +ifeq ($(HOST_FLAVOUR),MACOSX) + +NO_PULSEAUDIO?=1 +include build/make/config-clang.mk +# Mac OS X overrides +DYNLINK=0 +SHARED_SONAME=0 + +else ifeq ($(HOST_FLAVOUR),MSYS2) + +ifeq ($(MSYSTEM),MINGW64) +WINDOWS_ARCH=amd64 +include build/make/config-mingw-w64.mk +else ifeq ($(MSYSTEM),MINGW32) +WINDOWS_ARCH=x86 +include build/make/config-mingw-w64.mk +else ifeq ($(MSYSTEM),UCRT64) +WINDOWS_ARCH=amd64 +include build/make/config-mingw-w64.mk +else ifeq ($(MSYSTEM),CLANG64) +WINDOWS_ARCH=amd64 +MINGW_COMPILER=clang +include build/make/config-mingw-w64.mk +else +WINDOWS_ARCH=x86 +include build/make/config-mingw-w64.mk +endif + +else ifeq ($(HOST_FLAVOUR),LINUX) + +include build/make/config-gcc.mk + +else ifeq ($(HOST_FLAVOUR),FREEBSD) + +include build/make/config-clang.mk +NO_LTDL?=1 +NO_PORTAUDIOCPP?=1 + +else ifeq ($(HOST_FLAVOUR),OPENBSD) + +NO_PORTAUDIOCPP?=1 +NO_PULSEAUDIO?=1 +include build/make/config-clang.mk + +else ifeq ($(HOST_FLAVOUR),HAIKU) + +# In Haiku x86 32bit (but not 64bit), +# modern compilers need a -x86 suffix. +UNAME_P:=$(shell uname -p) +ifeq ($(UNAME_P),x86) +TOOLCHAIN_SUFFIX=-x86 +endif +include build/make/config-gcc.mk + +else + +include build/make/config-generic.mk + +endif + +else + +include build/make/config-generic.mk + +endif + diff --git a/Src/external_dependencies/openmpt-trunk/build/make/config-djgpp.mk b/Src/external_dependencies/openmpt-trunk/build/make/config-djgpp.mk new file mode 100644 index 00000000..fd32d405 --- /dev/null +++ b/Src/external_dependencies/openmpt-trunk/build/make/config-djgpp.mk @@ -0,0 +1,80 @@ + +CC = i386-pc-msdosdjgpp-gcc +CXX = i386-pc-msdosdjgpp-g++ +LD = i386-pc-msdosdjgpp-g++ +AR = i386-pc-msdosdjgpp-ar + +# Note that we are using GNU extensions instead of 100% standards-compliant +# mode, because otherwise DJGPP-specific headers/functions are unavailable. +CXXFLAGS_STDCXX = -std=gnu++17 +CFLAGS_STDC = -std=gnu99 +CXXFLAGS += $(CXXFLAGS_STDCXX) +CFLAGS += $(CFLAGS_STDC) + +CPPFLAGS += +CXXFLAGS += -march=i386 -m80387 -mtune=pentium -ffast-math +CFLAGS += -march=i386 -m80387 -mtune=pentium -ffast-math +LDFLAGS += +LDLIBS += -lm +ARFLAGS := rcs + +include build/make/warnings-gcc.mk + +EXESUFFIX=.exe + +DYNLINK=0 +SHARED_LIB=0 +STATIC_LIB=1 +SHARED_SONAME=0 + +DEBUG=0 +OPTIMIZE=0 +OPTIMIZE_SIZE=1 + +IS_CROSS=1 + +# generates warnings +MPT_COMPILER_NOVISIBILITY=1 + +# causes crashes on process shutdown, +# makes memory locking difficult +MPT_COMPILER_NOGCSECTIONS=1 + +ifeq ($(ALLOW_LGPL),1) +LOCAL_ZLIB=1 +LOCAL_MPG123=1 +LOCAL_OGG=1 +LOCAL_VORBIS=1 +else +NO_ZLIB=1 +NO_MPG123=1 +NO_OGG=1 +NO_VORBIS=1 +NO_VORBISFILE=1 +endif + +NO_LTDL=1 +NO_DL=1 +NO_PORTAUDIO=1 +NO_PORTAUDIOCPP=1 +NO_PULSEAUDIO=1 +NO_SDL=1 +NO_SDL2=1 +NO_SNDFILE=1 +NO_FLAC=1 + +ifeq ($(BUNDLED_ALLEGRO42),1) + +CPPFLAGS_ALLEGRO42 := -Iinclude/allegro42/include -DALLEGRO_HAVE_STDINT_H -DLONG_LONG="long long" +LDFLAGS_ALLEGRO42 := +LDLIBS_ALLEGRO42 := include/allegro42/lib/djgpp/liballeg.a + +include/allegro42/lib/djgpp/liballeg.a: + +cd include/allegro42 && ./xmake.sh clean + +cd include/allegro42 && ./xmake.sh lib + +bin/openmpt123$(EXESUFFIX): include/allegro42/lib/djgpp/liballeg.a + +MISC_OUTPUTS += include/allegro42/lib/djgpp/liballeg.a + +endif diff --git a/Src/external_dependencies/openmpt-trunk/build/make/config-emscripten.mk b/Src/external_dependencies/openmpt-trunk/build/make/config-emscripten.mk new file mode 100644 index 00000000..4d2e34db --- /dev/null +++ b/Src/external_dependencies/openmpt-trunk/build/make/config-emscripten.mk @@ -0,0 +1,160 @@ + +CC = emcc -c +CXX = em++ -c +LD = em++ +AR = emar +LINK.cc = em++ $(CXXFLAGS) $(CPPFLAGS) $(LDFLAGS) $(TARGET_ARCH) + +EMSCRIPTEN_TARGET?=default +EMSCRIPTEN_THREADS?=0 +EMSCRIPTEN_PORTS?=0 + +ifneq ($(STDCXX),) +CXXFLAGS_STDCXX = -std=$(STDCXX) +else +ifeq ($(shell printf '\n' > bin/empty.cpp ; if $(CXX) -std=c++17 -c bin/empty.cpp -o bin/empty.out > /dev/null 2>&1 ; then echo 'c++17' ; fi ), c++17) +CXXFLAGS_STDCXX = -std=c++17 +endif +endif +CFLAGS_STDC = -std=c99 +CXXFLAGS += $(CXXFLAGS_STDCXX) +CFLAGS += $(CFLAGS_STDC) + +CPPFLAGS += +CXXFLAGS += -fPIC +CFLAGS += -fPIC +LDFLAGS += +LDLIBS += +ARFLAGS := rcs + +ifeq ($(EMSCRIPTEN_THREADS),1) +CXXFLAGS += -pthread +CFLAGS += -pthread +LDFLAGS += -pthread +endif + +ifeq ($(EMSCRIPTEN_PORTS),1) +CXXFLAGS += -s USE_ZLIB=1 -sUSE_MPG123=1 -sUSE_OGG=1 -sUSE_VORBIS=1 -DMPT_WITH_ZLIB -DMPT_WITH_MPG123 -DMPT_WITH_VORBIS -DMPT_WITH_VORBISFI +CFLAGS += -s USE_ZLIB=1 -sUSE_MPG123=1 -sUSE_OGG=1 -sUSE_VORBIS=1 -DMPT_WITH_ZLIB -DMPT_WITH_MPG123 -DMPT_WITH_VORBIS -DMPT_WITH_VORBISFI +LDFLAGS += -s USE_ZLIB=1 -sUSE_MPG123=1 -sUSE_OGG=1 -sUSE_VORBIS=1 +NO_MINIZ=1 +NO_MINIMP3=1 +NO_STBVORBIS=1 +endif + +CXXFLAGS += -Oz +CFLAGS += -Oz +LDFLAGS += -Oz + +# Enable LTO as recommended by Emscripten +#CXXFLAGS += -flto=thin +#CFLAGS += -flto=thin +#LDFLAGS += -flto=thin -Wl,--thinlto-jobs=all +# As per recommendation in <https://github.com/emscripten-core/emscripten/issues/15638#issuecomment-982772770>, +# thinLTO is not as well tested as full LTO. Stick to full LTO for now. +CXXFLAGS += -flto +CFLAGS += -flto +LDFLAGS += -flto + +ifeq ($(EMSCRIPTEN_TARGET),default) +# emits whatever is emscripten's default, currently (1.38.8) this is the same as "wasm" below. +CPPFLAGS += -DMPT_BUILD_WASM +CXXFLAGS += +CFLAGS += +LDFLAGS += + +LDFLAGS += -s ALLOW_MEMORY_GROWTH=1 + +else ifeq ($(EMSCRIPTEN_TARGET),all) +# emits native wasm AND javascript with full wasm optimizations. +CPPFLAGS += -DMPT_BUILD_WASM +CXXFLAGS += +CFLAGS += +LDFLAGS += -s WASM=2 -s LEGACY_VM_SUPPORT=1 -Wno-transpile + +LDFLAGS += -s ALLOW_MEMORY_GROWTH=1 + +else ifeq ($(EMSCRIPTEN_TARGET),audioworkletprocessor) +# emits an es6 module in a single file suitable for use in an AudioWorkletProcessor +CPPFLAGS += -DMPT_BUILD_WASM -DMPT_BUILD_AUDIOWORKLETPROCESSOR +CXXFLAGS += +CFLAGS += +LDFLAGS += -s WASM=1 -s WASM_ASYNC_COMPILATION=0 -s MODULARIZE=1 -s EXPORT_ES6=1 -s SINGLE_FILE=1 + +LDFLAGS += -s ALLOW_MEMORY_GROWTH=1 + +else ifeq ($(EMSCRIPTEN_TARGET),wasm) +# emits native wasm. +CPPFLAGS += -DMPT_BUILD_WASM +CXXFLAGS += +CFLAGS += +LDFLAGS += -s WASM=1 + +LDFLAGS += -s ALLOW_MEMORY_GROWTH=1 + +else ifeq ($(EMSCRIPTEN_TARGET),js) +# emits only plain javascript with plain javascript focused optimizations. +CPPFLAGS += -DMPT_BUILD_ASMJS +CXXFLAGS += +CFLAGS += +LDFLAGS += -s WASM=0 -s LEGACY_VM_SUPPORT=1 -Wno-transpile + +LDFLAGS += -s ALLOW_MEMORY_GROWTH=1 + +endif + +CXXFLAGS += -s DISABLE_EXCEPTION_CATCHING=0 +CFLAGS += -s DISABLE_EXCEPTION_CATCHING=0 -fno-strict-aliasing +LDFLAGS += -s DISABLE_EXCEPTION_CATCHING=0 -s ERROR_ON_UNDEFINED_SYMBOLS=1 -s ERROR_ON_MISSING_LIBRARIES=1 -s EXPORT_NAME="'libopenmpt'" + +include build/make/warnings-clang.mk + +REQUIRES_RUNPREFIX=1 + +EXESUFFIX=.js +SOSUFFIX=.js +RUNPREFIX=node +TEST_LDFLAGS= --pre-js build/make/test-pre.js -lnodefs.js + +ifeq ($(EMSCRIPTEN_THREADS),1) +RUNPREFIX+=--experimental-wasm-threads --experimental-wasm-bulk-memory +endif + +DYNLINK=0 +SHARED_LIB=1 +STATIC_LIB=0 +EXAMPLES=1 +OPENMPT123=0 +SHARED_SONAME=0 +NO_SHARED_LINKER_FLAG=1 + +# Disable the generic compiler optimization flags as emscripten is sufficiently different. +# Optimization flags are hard-coded for emscripten in this file. +DEBUG=0 +OPTIMIZE=0 +OPTIMIZE_SIZE=0 + +IS_CROSS=1 + +ifeq ($(ALLOW_LGPL),1) +LOCAL_ZLIB=1 +LOCAL_MPG123=1 +LOCAL_OGG=1 +LOCAL_VORBIS=1 +else +NO_ZLIB=1 +NO_MPG123=1 +NO_OGG=1 +NO_VORBIS=1 +NO_VORBISFILE=1 +endif +NO_LTDL=1 +NO_DL=1 +NO_PORTAUDIO=1 +NO_PORTAUDIOCPP=1 +NO_PULSEAUDIO=1 +NO_SDL=1 +NO_SDL2=1 +NO_FLAC=1 +NO_SNDFILE=1 + diff --git a/Src/external_dependencies/openmpt-trunk/build/make/config-gcc.mk b/Src/external_dependencies/openmpt-trunk/build/make/config-gcc.mk new file mode 100644 index 00000000..608b3bdb --- /dev/null +++ b/Src/external_dependencies/openmpt-trunk/build/make/config-gcc.mk @@ -0,0 +1,43 @@ + +CC = $(TOOLCHAIN_PREFIX)gcc$(TOOLCHAIN_SUFFIX) +CXX = $(TOOLCHAIN_PREFIX)g++$(TOOLCHAIN_SUFFIX) +LD = $(TOOLCHAIN_PREFIX)g++($TOOLCHAIN_SUFFIX) +AR = $(TOOLCHAIN_PREFIX)ar$(TOOLCHAIN_SUFFIX) + +ifneq ($(STDCXX),) +CXXFLAGS_STDCXX = -std=$(STDCXX) +else +ifeq ($(shell printf '\n' > bin/empty.cpp ; if $(CXX) -std=c++17 -c bin/empty.cpp -o bin/empty.out > /dev/null 2>&1 ; then echo 'c++17' ; fi ), c++17) +CXXFLAGS_STDCXX = -std=c++17 +endif +endif +CFLAGS_STDC = -std=c99 +CXXFLAGS += $(CXXFLAGS_STDCXX) +CFLAGS += $(CFLAGS_STDC) + +CPPFLAGS += +CXXFLAGS += -fPIC +CFLAGS += -fPIC +LDFLAGS += +LDLIBS += -lm +ARFLAGS := rcs + +ifeq ($(OPTIMIZE_LTO),1) +CXXFLAGS += -flto +CFLAGS += -flto +endif + +ifeq ($(CHECKED_ADDRESS),1) +CXXFLAGS += -fsanitize=address +CFLAGS += -fsanitize=address +endif + +ifeq ($(CHECKED_UNDEFINED),1) +CXXFLAGS += -fsanitize=undefined +CFLAGS += -fsanitize=undefined +endif + +include build/make/warnings-gcc.mk + +EXESUFFIX= + diff --git a/Src/external_dependencies/openmpt-trunk/build/make/config-generic.mk b/Src/external_dependencies/openmpt-trunk/build/make/config-generic.mk new file mode 100644 index 00000000..61e10b1b --- /dev/null +++ b/Src/external_dependencies/openmpt-trunk/build/make/config-generic.mk @@ -0,0 +1,26 @@ + +$(warning warning: CONFIG=generic is deprecated. Use CONFIG=standard instead.) + +CC ?= cc +CXX ?= c++ +LD ?= c++ +AR = ar + +CXXFLAGS_STDCXX = -std=c++17 +CFLAGS_STDC = -std=c99 +CXXFLAGS += $(CXXFLAGS_STDCXX) +CFLAGS += $(CFLAGS_STDC) + +CPPFLAGS += +CXXFLAGS += +CFLAGS += +LDFLAGS += +LDLIBS += +ARFLAGS := rcs + +MPT_COMPILER_GENERIC=1 +SHARED_LIB=0 +DYNLINK=0 + +EXESUFFIX= + diff --git a/Src/external_dependencies/openmpt-trunk/build/make/config-haiku.mk b/Src/external_dependencies/openmpt-trunk/build/make/config-haiku.mk new file mode 100644 index 00000000..191dbb39 --- /dev/null +++ b/Src/external_dependencies/openmpt-trunk/build/make/config-haiku.mk @@ -0,0 +1,4 @@ + +$(warning warning: CONFIG=haiku is deprecated. The OS is auto-detected.) + +include config-defaults.mk diff --git a/Src/external_dependencies/openmpt-trunk/build/make/config-macosx.mk b/Src/external_dependencies/openmpt-trunk/build/make/config-macosx.mk new file mode 100644 index 00000000..278b395e --- /dev/null +++ b/Src/external_dependencies/openmpt-trunk/build/make/config-macosx.mk @@ -0,0 +1,4 @@ + +$(warning warning: CONFIG=macosx is deprecated. The OS is auto-detected.) + +include config-defaults.mk diff --git a/Src/external_dependencies/openmpt-trunk/build/make/config-mingw-w64.mk b/Src/external_dependencies/openmpt-trunk/build/make/config-mingw-w64.mk new file mode 100644 index 00000000..e0ab794c --- /dev/null +++ b/Src/external_dependencies/openmpt-trunk/build/make/config-mingw-w64.mk @@ -0,0 +1,118 @@ + +ifeq ($(WINDOWS_ARCH),) +MINGW_ARCH = i686 +else ifeq ($(WINDOWS_ARCH),x86) +MINGW_ARCH = i686 +else ifeq ($(WINDOWS_ARCH),amd64) +MINGW_ARCH = x86_64 +#else ifeq ($(WINDOWS_ARCH),arm) +#MINGW_ARCH = +#else ifeq ($(WINDOWS_ARCH),arm64) +#MINGW_ARCH = +else +$(error unknown WINDOWS_ARCH) +endif + +CC = $(MINGW_ARCH)-w64-mingw32-gcc$(MINGW_FLAVOUR) +CXX = $(MINGW_ARCH)-w64-mingw32-g++$(MINGW_FLAVOUR) +LD = $(MINGW_ARCH)-w64-mingw32-g++$(MINGW_FLAVOUR) +AR = $(MINGW_ARCH)-w64-mingw32-ar$(MINGW_FLAVOUR) + +CXXFLAGS_STDCXX = -std=c++17 -fexceptions -frtti +CFLAGS_STDC = -std=c99 +CXXFLAGS += $(CXXFLAGS_STDCXX) +CFLAGS += $(CFLAGS_STDC) + +CPPFLAGS += +CXXFLAGS += -municode -mconsole -mthreads +CFLAGS += -municode -mconsole -mthreads +LDFLAGS += +LDLIBS += -lm -lole32 -lrpcrt4 -lwinmm +ARFLAGS := rcs + +PC_LIBS_PRIVATE += -lole32 -lrpcrt4 + +ifeq ($(WINDOWS_FAMILY),) +# nothing +else ifeq ($(WINDOWS_FAMILY),desktop-app) +# nothing +else ifeq ($(WINDOWS_FAMILY),app) +CPPFLAGS += -DWINAPI_FAMILY=2 +OPENMPT123=0 +else ifeq ($(WINDOWS_FAMILY),phone-app) +CPPFLAGS += -DWINAPI_FAMILY=3 +OPENMPT123=0 +else ifeq ($(WINDOWS_FAMILY),pc-app) +CPPFLAGS += -DWINAPI_FAMILY=2 +OPENMPT123=0 +else +$(error unknown WINDOWS_FAMILY) +endif + +ifeq ($(WINDOWS_VERSION),) +# nothing +else ifeq ($(WINDOWS_VERSION),win95) +CPPFLAGS += -D_WIN32_WINDOWS=0x0400 +else ifeq ($(WINDOWS_VERSION),win98) +CPPFLAGS += -D_WIN32_WINDOWS=0x0410 +else ifeq ($(WINDOWS_VERSION),winme) +CPPFLAGS += -D_WIN32_WINDOWS=0x0490 +else ifeq ($(WINDOWS_VERSION),winnt4) +CPPFLAGS += -D_WIN32_WINNT=0x0400 +else ifeq ($(WINDOWS_VERSION),win2000) +CPPFLAGS += -D_WIN32_WINNT=0x0500 +else ifeq ($(WINDOWS_VERSION),winxp) +CPPFLAGS += -D_WIN32_WINNT=0x0501 +else ifeq ($(WINDOWS_VERSION),winxp64) +CPPFLAGS += -D_WIN32_WINNT=0x0502 +else ifeq ($(WINDOWS_VERSION),winvista) +CPPFLAGS += -DNTDDI_VERSION=0x06000000 +else ifeq ($(WINDOWS_VERSION),win7) +CPPFLAGS += -DNTDDI_VERSION=0x06010000 +else ifeq ($(WINDOWS_VERSION),win8) +CPPFLAGS += -DNTDDI_VERSION=0x06020000 +else ifeq ($(WINDOWS_VERSION),win8.1) +CPPFLAGS += -DNTDDI_VERSION=0x06030000 +else ifeq ($(WINDOWS_VERSION),win10) +CPPFLAGS += -DNTDDI_VERSION=0x0A000000 +else +$(error unknown WINDOWS_VERSION) +endif + +ifeq ($(MINGW_COMPILER),clang) +include build/make/warnings-clang.mk +else +include build/make/warnings-gcc.mk +endif + +EXESUFFIX=.exe +SOSUFFIX=.dll +SOSUFFIXWINDOWS=1 + +DYNLINK=0 +SHARED_LIB=1 +STATIC_LIB=0 +SHARED_SONAME=0 + +ifeq ($(HOST_FLAVOUR),MSYS2) + +else + +IS_CROSS=1 + +NO_ZLIB=1 +NO_LTDL=1 +NO_DL=1 +NO_MPG123=1 +NO_OGG=1 +NO_VORBIS=1 +NO_VORBISFILE=1 +NO_PORTAUDIO=1 +NO_PORTAUDIOCPP=1 +NO_PULSEAUDIO=1 +NO_SDL=1 +NO_SDL2=1 +NO_SNDFILE=1 +NO_FLAC=1 + +endif diff --git a/Src/external_dependencies/openmpt-trunk/build/make/config-mingw-win9x.mk b/Src/external_dependencies/openmpt-trunk/build/make/config-mingw-win9x.mk new file mode 100644 index 00000000..2897ff1d --- /dev/null +++ b/Src/external_dependencies/openmpt-trunk/build/make/config-mingw-win9x.mk @@ -0,0 +1,61 @@ + +CC = mingw32-gcc$(MINGW_FLAVOUR) +CXX = mingw32-g++$(MINGW_FLAVOUR) +LD = mingw32-g++$(MINGW_FLAVOUR) +AR = mingw32-gcc-ar$(MINGW_FLAVOUR) + +CXXFLAGS_STDCXX = -std=gnu++17 +CFLAGS_STDC = -std=gnu99 +CXXFLAGS += $(CXXFLAGS_STDCXX) +CFLAGS += $(CFLAGS_STDC) + +CPPFLAGS += -DWIN32 -D_WIN32 -DWINVER=0x0410 -D_WIN32_WINDOWS=0x0410 -DMPT_BUILD_RETRO +CXXFLAGS += -mconsole -mthreads +CFLAGS += -mconsole -mthreads +LDFLAGS += +LDLIBS += -lm -lole32 -lrpcrt4 -lwinmm +ARFLAGS := rcs + +LDFLAGS += -static -static-libgcc -static-libstdc++ + +#CXXFLAGS += -ffunction-sections -fdata-sections +#CFLAGS += -ffunction-sections -fdata-sections +#LDFLAGS += -Wl,--gc-sections + +CXXFLAGS += -march=i486 -m80387 -mtune=pentium +CFLAGS += -march=i486 -m80387 -mtune=pentium + +PC_LIBS_PRIVATE += -lole32 -lrpcrt4 + +include build/make/warnings-gcc.mk + +EXESUFFIX=.exe +SOSUFFIX=.dll +SOSUFFIXWINDOWS=1 + +DYNLINK=0 +SHARED_LIB=1 +STATIC_LIB=0 +SHARED_SONAME=0 + +FORCE_UNIX_STYLE_COMMANDS=1 + +IN_OPENMPT=1 +XMP_OPENMPT=1 + +IS_CROSS=1 + +NO_ZLIB=1 +NO_LTDL=1 +NO_DL=1 +NO_MPG123=1 +NO_OGG=1 +NO_VORBIS=1 +NO_VORBISFILE=1 +NO_PORTAUDIO=1 +NO_PORTAUDIOCPP=1 +NO_PULSEAUDIO=1 +NO_SDL=1 +NO_SDL2=1 +NO_SNDFILE=1 +NO_FLAC=1 diff --git a/Src/external_dependencies/openmpt-trunk/build/make/config-mingw64-win32.mk b/Src/external_dependencies/openmpt-trunk/build/make/config-mingw64-win32.mk new file mode 100644 index 00000000..d1c579ba --- /dev/null +++ b/Src/external_dependencies/openmpt-trunk/build/make/config-mingw64-win32.mk @@ -0,0 +1,47 @@ + +CC = i686-w64-mingw32-gcc$(MINGW_FLAVOUR) +CXX = i686-w64-mingw32-g++$(MINGW_FLAVOUR) +LD = i686-w64-mingw32-g++$(MINGW_FLAVOUR) +AR = i686-w64-mingw32-ar$(MINGW_FLAVOUR) + +CXXFLAGS_STDCXX = -std=c++17 +CFLAGS_STDC = -std=c99 +CXXFLAGS += $(CXXFLAGS_STDCXX) +CFLAGS += $(CFLAGS_STDC) + +CPPFLAGS += -DWIN32 -D_WIN32 +CXXFLAGS += -municode -mconsole -mthreads +CFLAGS += -municode -mconsole -mthreads +LDFLAGS += +LDLIBS += -lm -lole32 -lrpcrt4 -lwinmm +ARFLAGS := rcs + +PC_LIBS_PRIVATE += -lole32 -lrpcrt4 + +include build/make/warnings-gcc.mk + +EXESUFFIX=.exe +SOSUFFIX=.dll +SOSUFFIXWINDOWS=1 + +DYNLINK=0 +SHARED_LIB=1 +STATIC_LIB=0 +SHARED_SONAME=0 + +IS_CROSS=1 + +NO_ZLIB=1 +NO_LTDL=1 +NO_DL=1 +NO_MPG123=1 +NO_OGG=1 +NO_VORBIS=1 +NO_VORBISFILE=1 +NO_PORTAUDIO=1 +NO_PORTAUDIOCPP=1 +NO_PULSEAUDIO=1 +NO_SDL=1 +NO_SDL2=1 +NO_SNDFILE=1 +NO_FLAC=1 diff --git a/Src/external_dependencies/openmpt-trunk/build/make/config-mingw64-win64.mk b/Src/external_dependencies/openmpt-trunk/build/make/config-mingw64-win64.mk new file mode 100644 index 00000000..fc4f8eaf --- /dev/null +++ b/Src/external_dependencies/openmpt-trunk/build/make/config-mingw64-win64.mk @@ -0,0 +1,47 @@ + +CC = x86_64-w64-mingw32-gcc$(MINGW_FLAVOUR) +CXX = x86_64-w64-mingw32-g++$(MINGW_FLAVOUR) +LD = x86_64-w64-mingw32-g++$(MINGW_FLAVOUR) +AR = x86_64-w64-mingw32-ar$(MINGW_FLAVOUR) + +CXXFLAGS_STDCXX = -std=c++17 +CFLAGS_STDC = -std=c99 +CXXFLAGS += $(CXXFLAGS_STDCXX) +CFLAGS += $(CFLAGS_STDC) + +CPPFLAGS += -DWIN32 -D_WIN32 -DWIN64 -D_WIN64 +CXXFLAGS += -municode -mconsole -mthreads +CFLAGS += -municode -mconsole -mthreads +LDFLAGS += +LDLIBS += -lm -lole32 -lrpcrt4 -lwinmm +ARFLAGS := rcs + +PC_LIBS_PRIVATE += -lole32 -lrpcrt4 + +include build/make/warnings-gcc.mk + +EXESUFFIX=.exe +SOSUFFIX=.dll +SOSUFFIXWINDOWS=1 + +DYNLINK=0 +SHARED_LIB=1 +STATIC_LIB=0 +SHARED_SONAME=0 + +IS_CROSS=1 + +NO_ZLIB=1 +NO_LTDL=1 +NO_DL=1 +NO_MPG123=1 +NO_OGG=1 +NO_VORBIS=1 +NO_VORBISFILE=1 +NO_PORTAUDIO=1 +NO_PORTAUDIOCPP=1 +NO_PULSEAUDIO=1 +NO_SDL=1 +NO_SDL2=1 +NO_SNDFILE=1 +NO_FLAC=1 diff --git a/Src/external_dependencies/openmpt-trunk/build/make/config-mingw64-winrt-amd64.mk b/Src/external_dependencies/openmpt-trunk/build/make/config-mingw64-winrt-amd64.mk new file mode 100644 index 00000000..fdcd75a1 --- /dev/null +++ b/Src/external_dependencies/openmpt-trunk/build/make/config-mingw64-winrt-amd64.mk @@ -0,0 +1,49 @@ + +CC = x86_64-w64-mingw32-gcc$(MINGW_FLAVOUR) +CXX = x86_64-w64-mingw32-g++$(MINGW_FLAVOUR) +LD = x86_64-w64-mingw32-g++$(MINGW_FLAVOUR) +AR = x86_64-w64-mingw32-ar$(MINGW_FLAVOUR) + +CXXFLAGS_STDCXX = -std=c++17 +CFLAGS_STDC = -std=c99 +CXXFLAGS += $(CXXFLAGS_STDCXX) +CFLAGS += $(CFLAGS_STDC) + +CPPFLAGS += -DWIN32 -D_WIN32 -DWIN64 -D_WIN64 -DWINAPI_FAMILY=0x2 -D_WIN32_WINNT=0x0602 +CXXFLAGS += -municode -mconsole -mthreads +CFLAGS += -municode -mconsole -mthreads +LDFLAGS += +LDLIBS += -lm -lole32 -lwinmm +ARFLAGS := rcs + +PC_LIBS_PRIVATE += -lole32 -lrpcrt4 + +include build/make/warnings-gcc.mk + +EXESUFFIX=.exe +SOSUFFIX=.dll +SOSUFFIXWINDOWS=1 + +DYNLINK=0 +SHARED_LIB=1 +STATIC_LIB=0 +SHARED_SONAME=0 + +IS_CROSS=1 + +OPENMPT123=0 + +NO_ZLIB=1 +NO_LTDL=1 +NO_DL=1 +NO_MPG123=1 +NO_OGG=1 +NO_VORBIS=1 +NO_VORBISFILE=1 +NO_PORTAUDIO=1 +NO_PORTAUDIOCPP=1 +NO_PULSEAUDIO=1 +NO_SDL=1 +NO_SDL2=1 +NO_SNDFILE=1 +NO_FLAC=1 diff --git a/Src/external_dependencies/openmpt-trunk/build/make/config-mingw64-winrt-x86.mk b/Src/external_dependencies/openmpt-trunk/build/make/config-mingw64-winrt-x86.mk new file mode 100644 index 00000000..35093002 --- /dev/null +++ b/Src/external_dependencies/openmpt-trunk/build/make/config-mingw64-winrt-x86.mk @@ -0,0 +1,49 @@ + +CC = i686-w64-mingw32-gcc$(MINGW_FLAVOUR) +CXX = i686-w64-mingw32-g++$(MINGW_FLAVOUR) +LD = i686-w64-mingw32-g++$(MINGW_FLAVOUR) +AR = i686-w64-mingw32-ar$(MINGW_FLAVOUR) + +CXXFLAGS_STDCXX = -std=c++17 +CFLAGS_STDC = -std=c99 +CXXFLAGS += $(CXXFLAGS_STDCXX) +CFLAGS += $(CFLAGS_STDC) + +CPPFLAGS += -DWIN32 -D_WIN32 -DWINAPI_FAMILY=0x2 -D_WIN32_WINNT=0x0602 +CXXFLAGS += -municode -mconsole -mthreads +CFLAGS += -municode -mconsole -mthreads +LDFLAGS += +LDLIBS += -lm -lole32 -lrpcrt4 -lwinmm +ARFLAGS := rcs + +PC_LIBS_PRIVATE += -lole32 -lrpcrt4 + +include build/make/warnings-gcc.mk + +EXESUFFIX=.exe +SOSUFFIX=.dll +SOSUFFIXWINDOWS=1 + +DYNLINK=0 +SHARED_LIB=1 +STATIC_LIB=0 +SHARED_SONAME=0 + +IS_CROSS=1 + +OPENMPT123=0 + +NO_ZLIB=1 +NO_LTDL=1 +NO_DL=1 +NO_MPG123=1 +NO_OGG=1 +NO_VORBIS=1 +NO_VORBISFILE=1 +NO_PORTAUDIO=1 +NO_PORTAUDIOCPP=1 +NO_PULSEAUDIO=1 +NO_SDL=1 +NO_SDL2=1 +NO_SNDFILE=1 +NO_FLAC=1 diff --git a/Src/external_dependencies/openmpt-trunk/build/make/config-standard.mk b/Src/external_dependencies/openmpt-trunk/build/make/config-standard.mk new file mode 100644 index 00000000..d9757fae --- /dev/null +++ b/Src/external_dependencies/openmpt-trunk/build/make/config-standard.mk @@ -0,0 +1,24 @@ + +CC ?= cc +CXX ?= c++ +LD ?= c++ +AR = ar + +CXXFLAGS_STDCXX = -std=c++17 +CFLAGS_STDC = -std=c99 +CXXFLAGS += $(CXXFLAGS_STDCXX) +CFLAGS += $(CFLAGS_STDC) + +CPPFLAGS += -DMPT_COMPILER_GENERIC +CXXFLAGS += +CFLAGS += +LDFLAGS += +LDLIBS += +ARFLAGS := rcs + +MPT_COMPILER_GENERIC=1 +SHARED_LIB=0 +DYNLINK=0 + +EXESUFFIX= + diff --git a/Src/external_dependencies/openmpt-trunk/build/make/test-pre.js b/Src/external_dependencies/openmpt-trunk/build/make/test-pre.js new file mode 100644 index 00000000..3acc7d25 --- /dev/null +++ b/Src/external_dependencies/openmpt-trunk/build/make/test-pre.js @@ -0,0 +1,9 @@ + +var Module = { + 'preInit': function(text) { + FS.mkdir('/test'); + FS.mount(NODEFS, {'root': '../test/'}, '/test'); + FS.mkdir('/libopenmpt'); + FS.mount(NODEFS, {'root': '../libopenmpt/'}, '/libopenmpt'); + } +}; diff --git a/Src/external_dependencies/openmpt-trunk/build/make/warnings-clang.mk b/Src/external_dependencies/openmpt-trunk/build/make/warnings-clang.mk new file mode 100644 index 00000000..80cfbd08 --- /dev/null +++ b/Src/external_dependencies/openmpt-trunk/build/make/warnings-clang.mk @@ -0,0 +1,32 @@ + +CXXFLAGS_WARNINGS += -Wcast-align -Wcast-qual -Wmissing-prototypes -Wshift-count-negative -Wshift-count-overflow -Wshift-op-parentheses -Wshift-overflow -Wshift-sign-overflow -Wundef +CFLAGS_WARNINGS += -Wcast-align -Wcast-qual -Wmissing-prototypes -Wshift-count-negative -Wshift-count-overflow -Wshift-op-parentheses -Wshift-overflow -Wshift-sign-overflow -Wundef + +CXXFLAGS_WARNINGS += -Wdeprecated -Wextra-semi -Wframe-larger-than=16000 -Wglobal-constructors -Wimplicit-fallthrough -Wmissing-declarations -Wnon-virtual-dtor -Wreserved-id-macro + +#CXXFLAGS_WARNINGS += -Wfloat-equal +#CXXFLAGS_WARNINGS += -Wdocumentation +#CXXFLAGS_WARNINGS += -Wconversion +#CXXFLAGS_WARNINGS += -Weverything -Wno-c++98-compat -Wno-c++98-compat-pedantic -Wno-c++98-c++11-c++14-compat -Wno-padded -Wno-weak-vtables -Wno-sign-conversion -Wno-shadow-field-in-constructor -Wno-conversion -Wno-switch-enum -Wno-old-style-cast + +ifeq ($(MODERN),1) +LDFLAGS += -fuse-ld=lld +ifeq ($(OPTIMIZE_LTO),1) +LDFLAGS += -Wl,--thinlto-jobs=all +endif +CXXFLAGS_WARNINGS += +CFLAGS_WARNINGS += -Wframe-larger-than=4000 +LDFLAGS_WARNINGS += -Wl,-no-undefined -Wl,--detect-odr-violations +# re-renable after 1.29 branch +#CXXFLAGS_WARNINGS += -Wdouble-promotion +#CFLAGS_WARNINGS += -Wdouble-promotion +endif + +CFLAGS_SILENT += -Wno-\#warnings +CFLAGS_SILENT += -Wno-cast-align +CFLAGS_SILENT += -Wno-cast-qual +CFLAGS_SILENT += -Wno-missing-prototypes +CFLAGS_SILENT += -Wno-sign-compare +CFLAGS_SILENT += -Wno-unused-function +CFLAGS_SILENT += -Wno-unused-parameter +CFLAGS_SILENT += -Wno-unused-variable diff --git a/Src/external_dependencies/openmpt-trunk/build/make/warnings-gcc.mk b/Src/external_dependencies/openmpt-trunk/build/make/warnings-gcc.mk new file mode 100644 index 00000000..2f686e6e --- /dev/null +++ b/Src/external_dependencies/openmpt-trunk/build/make/warnings-gcc.mk @@ -0,0 +1,27 @@ + +CXXFLAGS_WARNINGS += -Wcast-align -Wcast-qual -Wfloat-conversion -Wframe-larger-than=16000 -Winit-self -Wlogical-op -Wmissing-declarations -Wpointer-arith -Wstrict-aliasing -Wsuggest-override -Wundef +CFLAGS_WARNINGS += -Wcast-align -Wcast-qual -Wfloat-conversion -Wlogical-op -Wundef + +CXXFLAGS_WARNINGS += -Wno-psabi + +ifeq ($(MODERN),1) +LDFLAGS += -fuse-ld=gold +CXXFLAGS_WARNINGS += +CFLAGS_WARNINGS += -Wframe-larger-than=4000 +#CXXFLAGS_WARNINGS += -Wstrict-aliasing -Wpointer-arith -Winit-self -Wshadow -Wswitch-enum -Wstrict-prototypes +LDFLAGS_WARNINGS += -Wl,-no-undefined -Wl,--detect-odr-violations +# re-renable after 1.29 branch +#CXXFLAGS_WARNINGS += -Wdouble-promotion +#CFLAGS_WARNINGS += -Wdouble-promotion +endif + +CFLAGS_SILENT += -Wno-cast-qual +CFLAGS_SILENT += -Wno-empty-body +CFLAGS_SILENT += -Wno-float-conversion +CFLAGS_SILENT += -Wno-implicit-fallthrough +CFLAGS_SILENT += -Wno-old-style-declaration +CFLAGS_SILENT += -Wno-sign-compare +CFLAGS_SILENT += -Wno-type-limits +CFLAGS_SILENT += -Wno-unused-but-set-variable +CFLAGS_SILENT += -Wno-unused-function +CFLAGS_SILENT += -Wno-unused-parameter |