set SDLMIXER_VENDORED to ON and vendor the required libraries into libs/SDL3_mixer/external
disable SDLMIXER_VORBIS_VORBISFILE add ogg v1.3.5-SDL add opus v1.4.x-SDL add opusfile v0.13-git-SDL
This commit is contained in:
+243
@@ -0,0 +1,243 @@
|
||||
# NOTE: This Makefile requires GNU make
|
||||
# Location to put the targets.
|
||||
TARGETBINDIR = .
|
||||
TESTBINDIR = tests
|
||||
TARGETLIBDIR = .
|
||||
# Name of the targets
|
||||
LIBOPUSFILE_TARGET = libopusfile.a
|
||||
LIBOPUSURL_TARGET = libopusurl.a
|
||||
OPUSFILE_EXAMPLE_TARGET = opusfile_example
|
||||
SEEKING_EXAMPLE_TARGET = seeking_example
|
||||
# Test targets
|
||||
#TODO: tests
|
||||
FOO_TARGET = foo
|
||||
# The command to use to generate dependency information
|
||||
MAKEDEPEND = ${CC} -MM
|
||||
#MAKEDEPEND = makedepend -f- -Y --
|
||||
# Optional features to enable
|
||||
#CFLAGS := $(CFLAGS) -DOP_HAVE_LRINTF
|
||||
CFLAGS := $(CFLAGS) -DOP_ENABLE_HTTP
|
||||
# Extra compilation flags.
|
||||
# You may get speed increases by including flags such as -O2 or -O3 or
|
||||
# -ffast-math, or additional flags, depending on your system and compiler.
|
||||
# The -g flag will generally include debugging information.
|
||||
CFLAGS := -g $(CFLAGS)
|
||||
CFLAGS := -DOP_ENABLE_ASSERTIONS $(CFLAGS)
|
||||
# These are gcc-only, but not actually critical.
|
||||
CFLAGS := -fPIC $(CFLAGS)
|
||||
CFLAGS := -std=c89 -pedantic $(CFLAGS)
|
||||
CFLAGS := -fvisibility=hidden $(CFLAGS)
|
||||
CFLAGS := -Wextra -Wno-parentheses -Wno-long-long $(CFLAGS)
|
||||
CFLAGS := -Wall $(CFLAGS)
|
||||
# The list of pkg-config packages we depend on.
|
||||
PACKAGES := ogg opus
|
||||
ifeq ($(findstring -DOP_ENABLE_HTTP,${CFLAGS}),-DOP_ENABLE_HTTP)
|
||||
PACKAGES += openssl
|
||||
endif
|
||||
# The location of include files.
|
||||
# Modify these to point to your Ogg and Opus include directories if they are
|
||||
# not installed in a standard location.
|
||||
CINCLUDE := `pkg-config --cflags ${PACKAGES}`
|
||||
|
||||
# Libraries to link with, and the location of library files.
|
||||
LIBS := `pkg-config --libs ${PACKAGES}`
|
||||
ifeq ($(findstring -DOP_HAVE_LRINTF,${CFLAGS}),-DOP_HAVE_LRINTF)
|
||||
LIBS := -lm $(LIBS)
|
||||
endif
|
||||
|
||||
# Extras for the MS target
|
||||
ifneq ($(findstring mingw,${CC}),)
|
||||
LIBS += -lwsock32 -lws2_32 -lgdi32 -lcrypt32
|
||||
EXEEXT := .exe
|
||||
endif
|
||||
|
||||
RANLIB ?= ranlib
|
||||
|
||||
#TODO: tests
|
||||
FOO_LIBS =
|
||||
|
||||
# ANYTHING BELOW THIS LINE PROBABLY DOES NOT NEED EDITING
|
||||
CINCLUDE := -I../include ${CINCLUDE}
|
||||
LIBSRCDIR = ../src
|
||||
BINSRCDIR = ../examples
|
||||
TESTSRCDIR = ${LIBSRCDIR}
|
||||
WORKDIR = objs
|
||||
|
||||
# C source file lists
|
||||
LIBOPUSFILE_CSOURCES = \
|
||||
http.c \
|
||||
info.c \
|
||||
internal.c \
|
||||
opusfile.c \
|
||||
stream.c \
|
||||
|
||||
LIBOPUSFILE_CHEADERS = \
|
||||
internal.h \
|
||||
|
||||
LIBOPUSURL_CSOURCES = \
|
||||
internal.c \
|
||||
http.c \
|
||||
|
||||
ifneq ($(findstring mingw,${CC}),)
|
||||
LIBOPUSURL_CSOURCES += wincerts.c
|
||||
endif
|
||||
|
||||
LIBOPUSURL_CHEADERS = \
|
||||
internal.h \
|
||||
|
||||
OPUSFILE_EXAMPLE_CSOURCES = opusfile_example.c
|
||||
|
||||
SEEKING_EXAMPLE_CSOURCES = seeking_example.c
|
||||
|
||||
ifneq ($(findstring mingw,${CC}),)
|
||||
OPUSFILE_EXAMPLE_CSOURCES += win32utf8.c
|
||||
SEEKING_EXAMPLE_CSOURCES += win32utf8.c
|
||||
endif
|
||||
|
||||
FOO_CSOURCES = tests/foo.c
|
||||
|
||||
# Create object file list.
|
||||
LIBOPUSFILE_OBJS:= ${LIBOPUSFILE_CSOURCES:%.c=${WORKDIR}/%.o}
|
||||
LIBOPUSFILE_ASMS:= ${LIBOPUSFILE_OBJS:%.o=%.s}
|
||||
LIBOPUSFILE_DEPS:= ${LIBOPUSFILE_OBJS:%.o=%.d}
|
||||
LIBOPUSURL_OBJS:= ${LIBOPUSURL_CSOURCES:%.c=${WORKDIR}/%.o}
|
||||
LIBOPUSURL_ASMS:= ${LIBOPUSURL_OBJS:%.o=%.s}
|
||||
LIBOPUSURL_DEPS:= ${LIBOPUSURL_OBJS:%.o=%.d}
|
||||
OPUSFILE_EXAMPLE_OBJS:= ${OPUSFILE_EXAMPLE_CSOURCES:%.c=${WORKDIR}/%.o}
|
||||
SEEKING_EXAMPLE_OBJS:= ${SEEKING_EXAMPLE_CSOURCES:%.c=${WORKDIR}/%.o}
|
||||
#TODO: tests
|
||||
FOO_OBJS:= ${FOO_CSOURCES:%.c=${WORKDIR}/%.o}
|
||||
ALL_OBJS:= \
|
||||
${LIBOPUSFILE_OBJS} \
|
||||
${LIBOPUSURL_OBJS} \
|
||||
${OPUSFILE_EXAMPLE_OBJS} \
|
||||
${SEEKING_EXAMPLE_OBJS} \
|
||||
|
||||
#TODO: tests
|
||||
# ${FOO_OBJS}
|
||||
|
||||
# Create the dependency file list
|
||||
ALL_DEPS:= ${ALL_OBJS:%.o=%.d}
|
||||
# Prepend source path to file names.
|
||||
LIBOPUSFILE_CSOURCES:= ${LIBOPUSFILE_CSOURCES:%=${LIBSRCDIR}/%}
|
||||
LIBOPUSFILE_CHEADERS:= ${LIBOPUSFILE_CHEADERS:%=${LIBSRCDIR}/%}
|
||||
LIBOPUSURL_CSOURCES:= ${LIBOPUSURL_CSOURCES:%=${LIBSRCDIR}/%}
|
||||
LIBOPUSURL_CHEADERS:= ${LIBOPUSURL_CHEADERS:%=${LIBSRCDIR}/%}
|
||||
OPUSFILE_EXAMPLE_CSOURCES:= ${OPUSFILE_EXAMPLE_CSOURCES:%=${BINSRCDIR}/%}
|
||||
SEEKING_EXAMPLE_CSOURCES:= ${SEEKING_EXAMPLE_CSOURCES:%=${BINSRCDIR}/%}
|
||||
#TODO: tests
|
||||
FOO_CSOURCES:= ${FOO_CSOURCES:%=${TESTSRCDIR}/%}
|
||||
ALL_CSOURCES:= \
|
||||
${LIBOPUSFILE_CSOURCES} \
|
||||
${LIBOPUSURL_CSOURCES} \
|
||||
${OPUSFILE_EXAMPLE_CSOURCES} \
|
||||
${SEEKING_EXAMPLE_CSOURCES} \
|
||||
|
||||
#TODO: tests
|
||||
# ${FOO_CSOURCES} \
|
||||
# Prepand target path to file names.
|
||||
LIBOPUSFILE_TARGET:= ${TARGETLIBDIR}/${LIBOPUSFILE_TARGET}
|
||||
LIBOPUSURL_TARGET:= ${TARGETLIBDIR}/${LIBOPUSURL_TARGET}
|
||||
OPUSFILE_EXAMPLE_TARGET:= ${TARGETBINDIR}/${OPUSFILE_EXAMPLE_TARGET}${EXEEXT}
|
||||
SEEKING_EXAMPLE_TARGET:= ${TARGETBINDIR}/${SEEKING_EXAMPLE_TARGET}${EXEEXT}
|
||||
# Prepend test path to file names.
|
||||
#TODO: tests
|
||||
FOO_TARGET:= ${TESTBINDIR}/${FOO_TARGET}
|
||||
# Complete set of targets
|
||||
ALL_TARGETS:= \
|
||||
${LIBOPUSFILE_TARGET} \
|
||||
${LIBOPUSURL_TARGET} \
|
||||
${OPUSFILE_EXAMPLE_TARGET} \
|
||||
${SEEKING_EXAMPLE_TARGET} \
|
||||
|
||||
#TODO: tests
|
||||
# ${FOO_TARGET} \
|
||||
|
||||
# Targets:
|
||||
# Everything (default)
|
||||
all: ${ALL_TARGETS}
|
||||
|
||||
# libopusfile
|
||||
${LIBOPUSFILE_TARGET}: ${LIBOPUSFILE_OBJS}
|
||||
mkdir -p ${TARGETLIBDIR}
|
||||
$(AR) cqs $@ ${LIBOPUSFILE_OBJS}
|
||||
-$(RANLIB) $@
|
||||
|
||||
# libopusurl
|
||||
${LIBOPUSURL_TARGET}: ${LIBOPUSURL_OBJS}
|
||||
mkdir -p ${TARGETLIBDIR}
|
||||
$(AR) cqs $@ ${LIBOPUSURL_OBJS}
|
||||
-$(RANLIB) $@
|
||||
|
||||
# opusfile_example
|
||||
${OPUSFILE_EXAMPLE_TARGET}: ${OPUSFILE_EXAMPLE_OBJS} ${LIBOPUSFILE_TARGET} \
|
||||
${LIBOPUSURL_TARGET}
|
||||
mkdir -p ${TARGETBINDIR}
|
||||
${CC} ${CFLAGS} ${OPUSFILE_EXAMPLE_OBJS} ${LIBOPUSFILE_TARGET} \
|
||||
${LIBOPUSURL_TARGET} ${LIBS} -o $@
|
||||
|
||||
# seeking_example
|
||||
${SEEKING_EXAMPLE_TARGET}: ${SEEKING_EXAMPLE_OBJS} ${LIBOPUSFILE_TARGET} \
|
||||
${LIBOPUSURL_TARGET}
|
||||
mkdir -p ${TARGETBINDIR}
|
||||
${CC} ${CFLAGS} ${SEEKING_EXAMPLE_OBJS} ${LIBOPUSFILE_TARGET} \
|
||||
${LIBOPUSURL_TARGET} ${LIBS} -o $@
|
||||
|
||||
#TODO:
|
||||
#tests: foo
|
||||
#
|
||||
#${FOO_TARGET}: ${FOO_OBJS}
|
||||
# mkdir -p ${TESTBINDIR}
|
||||
# ${CC} ${CFLAGS} ${FOO_OBJS} ${FOO_LIBS} -o $@
|
||||
#
|
||||
#tests-clean:
|
||||
# -rmdir ${TESTBINDIR}
|
||||
|
||||
# Assembly listing
|
||||
ALL_ASM := ${ALL_OBJS:%.o=%.s}
|
||||
asm: ${ALL_ASM}
|
||||
|
||||
# Check that build is complete.
|
||||
check: all
|
||||
|
||||
# Remove all targets.
|
||||
clean:
|
||||
${RM} ${ALL_ASM} ${ALL_OBJS} ${ALL_DEPS}
|
||||
${RM} ${ALL_TARGETS}
|
||||
-rmdir ${WORKDIR}
|
||||
|
||||
# Make everything depend on changes in the Makefile
|
||||
# This vpath directive needs to be before any include statements
|
||||
vpath Makefile $(dir $(lastword $(MAKEFILE_LIST)))
|
||||
${ALL_ASM} ${ALL_OBJS} ${ALL_DEPS} ${ALL_TARGETS} : Makefile
|
||||
|
||||
# Specify which targets are phony for GNU make
|
||||
.PHONY : all clean check
|
||||
|
||||
# Rules
|
||||
${WORKDIR}/%.d: ${LIBSRCDIR}/%.c
|
||||
mkdir -p ${dir $@}
|
||||
${MAKEDEPEND} ${CINCLUDE} ${CFLAGS} $< -MT ${@:%.d=%.o} > $@
|
||||
${MAKEDEPEND} ${CINCLUDE} ${CFLAGS} $< -MT ${@:%.d=%.s} >> $@
|
||||
${MAKEDEPEND} ${CINCLUDE} ${CFLAGS} $< -MT $@ >> $@
|
||||
${WORKDIR}/%.s: ${LIBSRCDIR}/%.c
|
||||
mkdir -p ${dir $@}
|
||||
${CC} ${CINCLUDE} ${CFLAGS} -S -o $@ $<
|
||||
${WORKDIR}/%.o: ${LIBSRCDIR}/%.c
|
||||
mkdir -p ${dir $@}
|
||||
${CC} ${CINCLUDE} ${CFLAGS} -c -o $@ $<
|
||||
|
||||
${WORKDIR}/%.d : ${BINSRCDIR}/%.c
|
||||
mkdir -p ${dir $@}
|
||||
${MAKEDEPEND} ${CINCLUDE} ${CFLAGS} $< -MT ${@:%.d=%.o} > $@
|
||||
${WORKDIR}/%.s : ${BINSRCDIR}/%.c ${WORKDIR}/%.o
|
||||
mkdir -p ${dir $@}
|
||||
${CC} ${CINCLUDE} ${CFLAGS} -S -o $@ $<
|
||||
${WORKDIR}/%.o : ${BINSRCDIR}/%.c
|
||||
mkdir -p ${dir $@}
|
||||
${CC} ${CINCLUDE} ${CFLAGS} -c -o $@ $<
|
||||
|
||||
# Include header file dependencies, except when cleaning
|
||||
ifneq ($(MAKECMDGOALS),clean)
|
||||
include ${ALL_DEPS}
|
||||
endif
|
||||
Reference in New Issue
Block a user