Makefile.minimal
author Sam Lantinga
Sat, 08 Jun 2019 18:22:18 -0700
changeset 12803 70d338e248c8
parent 12131 9601849b3079
permissions -rw-r--r--
Fixed bug 4294 - Audio: perform more validation on conversion request

janisozaur

There are many cases which are not able to be handled by SDL's audio conversion routines, including too low (negative) rate, too high rate (impossible to allocate).

This patch aims to report such issues early and handle others in a graceful manner. The "INT32_MAX / RESAMPLER_SAMPLES_PER_ZERO_CROSSING" value is the conservative approach in terms of what can _technically_ be supported, but its value is 4'194'303, or just shy of 4.2MHz. I highly doubt any sane person would use such rates, especially in SDL2, so I would like to drive this limit further down, but would need some assistance to do that, as doing so would have to introduce an arbitrary value. Are you OK with such approach? What would a good value be? Wikipedia (https://en.wikipedia.org/wiki/High-resolution_audio) lists 96kHz as the highest sampling rate in use, even if I quadruple it for a good measure, to 384kHz it's still an order of magnitude lower than 4MHz.
slouken@1484
     1
# Makefile to build the SDL library
slouken@1484
     2
slouken@1484
     3
INCLUDE = -I./include
slouken@1484
     4
CFLAGS  = -g -O2 $(INCLUDE)
slouken@1484
     5
AR	= ar
slouken@1484
     6
RANLIB	= ranlib
slouken@1484
     7
slouken@1484
     8
TARGET  = libSDL.a
slouken@1484
     9
SOURCES = \
slouken@1484
    10
	src/*.c \
slouken@1484
    11
	src/audio/*.c \
slouken@5310
    12
	src/audio/dummy/*.c \
slouken@1484
    13
	src/cpuinfo/*.c \
slouken@1484
    14
	src/events/*.c \
slouken@1484
    15
	src/file/*.c \
slouken@5310
    16
	src/haptic/*.c \
slouken@5310
    17
	src/haptic/dummy/*.c \
slouken@1484
    18
	src/joystick/*.c \
slouken@5310
    19
	src/joystick/dummy/*.c \
slouken@5310
    20
	src/loadso/dummy/*.c \
slouken@5310
    21
	src/power/*.c \
icculus@7667
    22
	src/filesystem/dummy/*.c \
slouken@5310
    23
	src/render/*.c \
slouken@5310
    24
	src/render/software/*.c \
slouken@12130
    25
	src/sensor/*.c \
slouken@12131
    26
	src/sensor/dummy/*.c \
slouken@1484
    27
	src/stdlib/*.c \
slouken@1484
    28
	src/thread/*.c \
slouken@5310
    29
	src/thread/generic/*.c \
slouken@1484
    30
	src/timer/*.c \
slouken@5310
    31
	src/timer/dummy/*.c \
slouken@1484
    32
	src/video/*.c \
slouken@1484
    33
	src/video/dummy/*.c \
slouken@1484
    34
slouken@1484
    35
OBJECTS = $(shell echo $(SOURCES) | sed -e 's,\.c,\.o,g')
slouken@1484
    36
slouken@1484
    37
all: $(TARGET)
slouken@1484
    38
slouken@5310
    39
$(TARGET): $(OBJECTS)
slouken@1484
    40
	$(AR) crv $@ $^
slouken@1484
    41
	$(RANLIB) $@
slouken@1484
    42
slouken@1484
    43
clean:
slouken@1484
    44
	rm -f $(TARGET) $(OBJECTS)