CSE2-tweaks/external/clownaudio/example/Makefile.old

274 lines
7.7 KiB
Makefile

USE_LIBVORBIS = false
USE_STB_VORBIS = true
USE_DR_MP3 = true
USE_LIBOPUS = false
USE_LIBFLAC = false
USE_DR_FLAC = true
USE_DR_WAV = true
USE_LIBSNDFILE = false
USE_LIBOPENMPT = false
USE_LIBXMPLITE = true
USE_PXTONE = true
USE_SNES_SPC = true
# Can be 'miniaudio', 'SDL1', 'SDL2', 'Cubeb', or 'PortAudio'
BACKEND = miniaudio
CLOWNAUDIO_DIR = ../src
ifneq ($(RELEASE),)
CFLAGS = -O2 -flto
else
CFLAGS = -Og -ggdb3
endif
ALL_CFLAGS = -std=c99 -MMD -MP -MF $@.d -DCLOWNAUDIO_EXPORT= -DCLOWNAUDIO_NO_EXPORT= -I $(CFLAGS)
ifneq ($(RELEASE),)
CXXFLAGS = -O2 -flto
else
CXXFLAGS = -Og -ggdb3
endif
ALL_CXXFLAGS = -std=c++98 -MMD -MP -MF $@.d -DCLOWNAUDIO_EXPORT= -DCLOWNAUDIO_NO_EXPORT= $(CXXFLAGS)
ifneq ($(RELEASE),)
LDFLAGS = -s
else
LDFLAGS =
endif
ALL_LDFLAGS = $(LDFLAGS)
LIBS =
ALL_LIBS = $(LIBS)
SDL1_CFLAGS = $(shell pkg-config sdl --cflags)
SDL1_LIBS = $(shell pkg-config sdl --libs --static)
SDL2_CFLAGS = $(shell pkg-config sdl2 --cflags)
SDL2_LIBS = $(shell pkg-config sdl2 --libs --static)
CLOWNAUDIO_SOURCES = \
miniaudio.cpp \
mixer.cpp \
decoding/decoder_selector.cpp \
decoding/predecoder.cpp \
decoding/resampled_decoder.cpp \
decoding/split_decoder.cpp \
decoding/decoders/memory_stream.cpp
ifeq ($(USE_LIBVORBIS), true)
CLOWNAUDIO_SOURCES += decoding/decoders/libvorbis.cpp
ALL_CXXFLAGS += -DUSE_LIBVORBIS $(shell pkg-config vorbisfile --cflags)
ALL_LIBS += $(shell pkg-config vorbisfile --libs --static)
endif
ifeq ($(USE_STB_VORBIS), true)
CLOWNAUDIO_SOURCES += decoding/decoders/stb_vorbis.cpp
ALL_CXXFLAGS += -DUSE_STB_VORBIS
ALL_LIBS += -lm
endif
ifeq ($(USE_DR_MP3), true)
CLOWNAUDIO_SOURCES += decoding/decoders/dr_mp3.cpp
ALL_CXXFLAGS += -DUSE_DR_MP3
endif
ifeq ($(USE_LIBOPUS), true)
CLOWNAUDIO_SOURCES += decoding/decoders/libopus.cpp
ALL_CXXFLAGS += -DUSE_LIBOPUS $(shell pkg-config opusfile --cflags)
ALL_LIBS += $(shell pkg-config opusfile --libs --static)
endif
ifeq ($(USE_LIBFLAC), true)
CLOWNAUDIO_SOURCES += decoding/decoders/libflac.cpp
ALL_CXXFLAGS += -DUSE_LIBFLAC $(shell pkg-config flac --cflags)
ALL_LIBS += $(shell pkg-config flac --libs --static)
endif
ifeq ($(USE_DR_FLAC), true)
CLOWNAUDIO_SOURCES += decoding/decoders/dr_flac.cpp
ALL_CXXFLAGS += -DUSE_DR_FLAC
endif
ifeq ($(USE_DR_WAV), true)
CLOWNAUDIO_SOURCES += decoding/decoders/dr_wav.cpp
ALL_CXXFLAGS += -DUSE_DR_WAV
endif
ifeq ($(USE_LIBSNDFILE), true)
CLOWNAUDIO_SOURCES += decoding/decoders/libsndfile.cpp
ALL_CXXFLAGS += -DUSE_LIBSNDFILE $(shell pkg-config sndfile --cflags)
ALL_LIBS += $(shell pkg-config sndfile --libs --static)
endif
ifeq ($(USE_LIBOPENMPT), true)
CLOWNAUDIO_SOURCES += decoding/decoders/libopenmpt.cpp
ALL_CXXFLAGS += -DUSE_LIBOPENMPT $(shell pkg-config libopenmpt --cflags)
ALL_LIBS += $(shell pkg-config libopenmpt --libs --static)
endif
ifeq ($(USE_LIBXMPLITE), true)
CLOWNAUDIO_SOURCES += decoding/decoders/libxmp-lite.cpp
ALL_CXXFLAGS += -DUSE_LIBXMPLITE
ifeq ($(shell pkg-config libxmp-lite --exists && echo 1), 1)
ALL_CXXFLAGS += $(shell pkg-config libxmp-lite --cflags)
ALL_LIBS += $(shell pkg-config libxmp-lite --libs --static)
else
ALL_CFLAGS += -I$(CLOWNAUDIO_DIR)/decoding/decoders/libs/libxmp-lite/include/libxmp-lite
ALL_CXXFLAGS += -I$(CLOWNAUDIO_DIR)/decoding/decoders/libs/libxmp-lite/include/libxmp-lite
endif
endif
ifeq ($(USE_PXTONE), true)
CLOWNAUDIO_SOURCES += decoding/decoders/pxtone.cpp decoding/decoders/pxtone_noise.cpp
ALL_CXXFLAGS += -DUSE_PXTONE
ALL_LIBS += -lstdc++
# Apparently PxTone supports Vorbis-encoded samples
ifeq ($(USE_LIBVORBIS), true)
ALL_CXXFLAGS += -DpxINCLUDE_OGGVORBIS
endif
endif
ifeq ($(USE_SNES_SPC), true)
CLOWNAUDIO_SOURCES += decoding/decoders/snes_spc.cpp
ALL_CXXFLAGS += -DUSE_SNES_SPC
ALL_LIBS += -lstdc++
endif
ifeq ($(BACKEND), miniaudio)
CLOWNAUDIO_SOURCES += playback/miniaudio.cpp
ALL_CXXFLAGS += -DMINIAUDIO_ENABLE_DEVICE_IO
ALL_LIBS += -lpthread -lm
ifneq ($(WINDOWS), 1)
ALL_LIBS += -ldl
endif
else ifeq ($(BACKEND), SDL1)
CLOWNAUDIO_SOURCES += playback/sdl1.cpp
ALL_CXXFLAGS += $(SDL1_CFLAGS)
ALL_LIBS += $(SDL1_LIBS)
else ifeq ($(BACKEND), SDL2)
CLOWNAUDIO_SOURCES += playback/sdl2.cpp
ALL_CXXFLAGS += $(SDL2_CFLAGS)
ALL_LIBS += $(SDL2_LIBS)
else ifeq ($(BACKEND), Cubeb)
CLOWNAUDIO_SOURCES += playback/cubeb.cpp
ALL_LIBS += -lcubeb
else ifeq ($(BACKEND), PortAudio)
CLOWNAUDIO_SOURCES += playback/portaudio.cpp
ALL_CXXFLAGS += $(shell pkg-config portaudio-2.0 --cflags)
ALL_LIBS += $(shell pkg-config portaudio-2.0 --libs --static)
endif
LIBXMPLITE_SOURCES = \
src/virtual.c \
src/format.c \
src/period.c \
src/player.c \
src/read_event.c \
src/dataio.c \
src/lfo.c \
src/scan.c \
src/control.c \
src/filter.c \
src/effects.c \
src/mixer.c \
src/mix_all.c \
src/load_helpers.c \
src/load.c \
src/hio.c \
src/smix.c \
src/memio.c \
src/loaders/common.c \
src/loaders/itsex.c \
src/loaders/sample.c \
src/loaders/xm_load.c \
src/loaders/mod_load.c \
src/loaders/s3m_load.c \
src/loaders/it_load.c
PXTONE_SOURCES = \
pxtnDelay.cpp \
pxtnDescriptor.cpp \
pxtnError.cpp \
pxtnEvelist.cpp \
pxtnMaster.cpp \
pxtnMem.cpp \
pxtnOverDrive.cpp \
pxtnPulse_Frequency.cpp \
pxtnPulse_Noise.cpp \
pxtnPulse_NoiseBuilder.cpp \
pxtnPulse_Oggv.cpp \
pxtnPulse_Oscillator.cpp \
pxtnPulse_PCM.cpp \
pxtnService.cpp \
pxtnService_moo.cpp \
pxtnText.cpp \
pxtnUnit.cpp \
pxtnWoice.cpp \
pxtnWoice_io.cpp \
pxtnWoicePTV.cpp \
pxtoneNoise.cpp
SPC_SOURCES = \
dsp.cpp \
SNES_SPC.cpp \
SNES_SPC_misc.cpp \
SNES_SPC_state.cpp \
spc.cpp \
SPC_DSP.cpp \
SPC_Filter.cpp
OBJECTS += obj/test.o
OBJECTS += $(addprefix obj/clownaudio/, $(addsuffix .o, $(CLOWNAUDIO_SOURCES)))
ifeq ($(USE_LIBXMPLITE), true)
ifneq ($(shell pkg-config libxmp-lite --exists && echo 1), 1)
OBJECTS += $(addprefix obj/libxmp-lite/, $(addsuffix .o, $(LIBXMPLITE_SOURCES)))
endif
endif
ifeq ($(USE_PXTONE), true)
OBJECTS += $(addprefix obj/pxtone/, $(addsuffix .o, $(PXTONE_SOURCES)))
endif
ifeq ($(USE_SNES_SPC), true)
OBJECTS += $(addprefix obj/spc/, $(addsuffix .o, $(SPC_SOURCES)))
endif
DEPENDENCIES = $(addsuffix .d, $(OBJECTS))
all: test
obj/test.o: test.cpp
$(info Compiling $<)
@mkdir -p $(@D)
@$(CXX) $(ALL_CXXFLAGS) -Wall -Wextra -pedantic -I. -I../include $< -o $@ -c
obj/clownaudio/%.c.o: $(CLOWNAUDIO_DIR)/%.c
$(info Compiling $<)
@mkdir -p $(@D)
@$(CC) $(ALL_CFLAGS) -Wall -Wextra -pedantic -I. -I../include $< -o $@ -c
obj/clownaudio/%.cpp.o: $(CLOWNAUDIO_DIR)/%.cpp
$(info Compiling $<)
@mkdir -p $(@D)
@$(CXX) $(ALL_CXXFLAGS) -Wall -Wextra -pedantic -I. -I../include $< -o $@ -c
obj/libxmp-lite/%.o: $(CLOWNAUDIO_DIR)/decoding/decoders/libs/libxmp-lite/%
$(info Compiling $<)
@mkdir -p $(@D)
@$(CC) $(ALL_CFLAGS) -Wall -Wextra -pedantic -Wno-unused-parameter -Wno-sign-compare -Wno-maybe-uninitialized -I$(CLOWNAUDIO_DIR)/decoding/decoders/libs/libxmp-lite/src -DLIBXMP_CORE_PLAYER=1 $< -o $@ -c
obj/pxtone/%.o: $(CLOWNAUDIO_DIR)/decoding/decoders/libs/pxtone/%
$(info Compiling $<)
@mkdir -p $(@D)
@$(CXX) $(ALL_CXXFLAGS) -std=c++11 -Wall -Wextra -pedantic $< -o $@ -c
obj/spc/%.o: $(CLOWNAUDIO_DIR)/decoding/decoders/libs/snes_spc-0.9.0/snes_spc/%
$(info Compiling $<)
@mkdir -p $(@D)
@$(CXX) $(ALL_CXXFLAGS) $< -o $@ -c
test: $(OBJECTS)
$(info Linking $@)
@$(CC) $(ALL_CFLAGS) -Wall -Wextra -pedantic $^ -o $@ $(ALL_LDFLAGS) $(ALL_LIBS)
include $(wildcard $(DEPENDENCIES))