1CC=gcc 2 3BTSTACK_ROOT = ../.. 4SBC_DECODER_ROOT = ${BTSTACK_ROOT}/3rd-party/bluedroid/decoder 5SBC_ENCODER_ROOT = ${BTSTACK_ROOT}/3rd-party/bluedroid/encoder 6 7include ${SBC_DECODER_ROOT}/Makefile.inc 8include ${SBC_ENCODER_ROOT}/Makefile.inc 9 10SBC_DECODER += \ 11 ${BTSTACK_ROOT}/src/classic/btstack_sbc_plc.c \ 12 ${BTSTACK_ROOT}/src/classic/btstack_sbc_decoder_bluedroid.c \ 13 14SBC_ENCODER += \ 15 ${BTSTACK_ROOT}/src/classic/btstack_sbc_encoder_bluedroid.c \ 16 ${BTSTACK_ROOT}/src/classic/hfp_msbc.c \ 17 18SBC_DECODER_OBJ = $(SBC_DECODER:.c=.o) 19SBC_ENCODER_OBJ = $(SBC_ENCODER:.c=.o) 20 21CFLAGS = -g -Wall -I. -I../ -I${BTSTACK_ROOT}/src -I${BTSTACK_ROOT}/src/classic -I${BTSTACK_ROOT}/platform/posix 22CFLAGS += -I${SBC_DECODER_ROOT}/include 23CFLAGS += -I${SBC_ENCODER_ROOT}/include 24CFLAGS += -D PRINT_SAMPLES -D PRINT_SCALEFACTORS -D OI_DEBUG -D TRACE_EXECUTION 25LDFLAGS += -lCppUTest -lCppUTestExt 26VPATH += ${SBC_DECODER_ROOT}/srce 27VPATH += ${SBC_ENCODER_ROOT}/srce 28VPATH += ${BTSTACK_ROOT}/src 29VPATH += ${BTSTACK_ROOT}/platform/posix 30 31COMMON += \ 32 hci_dump.c \ 33 btstack_util.c \ 34 wav_util.c \ 35 36COMMON_OBJ = $(COMMON:.c=.o) 37 38SBC_TESTS = sbc_decoder_test msbc_encoder_test sbc_decoder_sine 39 40all: ${SBC_TESTS} 41 42sbc_decoder_test: ${SBC_DECODER_OBJ} ${SBC_ENCODER_OBJ} ${COMMON_OBJ} sbc_decoder_test.o 43 ${CC} $^ ${CFLAGS} ${LDFLAGS} -o $@ 44 45msbc_encoder_test: ${SBC_DECODER_OBJ} ${SBC_ENCODER_OBJ} ${COMMON_OBJ} msbc_encoder_test.o 46 ${CC} $^ ${CFLAGS} ${LDFLAGS} -o $@ 47 48data_sine_stereo_sbc.h: data/sine-stereo.sbc 49 xxd -i -l 14800 $^ > $@ 50 51data_fanfare_8sb_stereo_sbc.h: data/fanfare-8sb-stereo.sbc 52 xxd -i $^ > $@ 53 54sbc_decoder_sine: ${SBC_DECODER_OBJ} ${SBC_ENCODER_OBJ} ${COMMON_OBJ} sbc_decoder_sine.o data_sine_stereo_sbc.h 55 ${CC} $(filter-out data_sine_stereo_sbc.h,$^) ${CFLAGS} ${LDFLAGS} -o $@ 56 57test: all 58 ./sbc_decoder_test data/avdtp_sink sbc 0 0 59 60 #./sbc_decoder_test data/sine-4sb-mono msbc 1 100 61 #./sbc_encoder_test data/sine-mono.wav data/sine-4sb-mono.sbc 62 63pytest-sine: 64 ./sbc_decoder_test.py data/sine-4sb-mono.sbc data/sine-4sb-decoded-mono.wav 65 ./sbc_decoder_test.py data/sine-8sb-mono.sbc data/sine-8sb-decoded-mono.wav 66 ./sbc_decoder_test.py data/sine-4sb-stereo.sbc data/sine-4sb-decoded-stereo.wav 67 ./sbc_decoder_test.py data/sine-8sb-stereo.sbc data/sine-8sb-decoded-stereo.wav 68 69 ./sbc_encoder_test.py data/sine-mono.wav 16 4 31 0 data/sine-4sb-mono.sbc 70 ./sbc_encoder_test.py data/sine-mono.wav 16 8 64 0 data/sine-8sb-mono.sbc 71 ./sbc_encoder_test.py data/sine-stereo.wav 16 4 30 1 2 data/sine-4sb-stereo.sbc 72 ./sbc_encoder_test.py data/sine-stereo.wav 16 8 64 2 data/sine-8sb-stereo.sbc 73 74pytest: 75 ./sbc_decoder_test.py data/fanfare-4sb-mono.sbc data/fanfare-4sb-decoded-mono.wav 76 ./sbc_decoder_test.py data/fanfare-8sb-mono.sbc data/fanfare-8sb-decoded-mono.wav 77 ./sbc_decoder_test.py data/fanfare-4sb-stereo.sbc data/fanfare-4sb-decoded-stereo.wav 78 ./sbc_decoder_test.py data/fanfare-8sb-stereo.sbc data/fanfare-8sb-decoded-stereo.wav 79 80 ./sbc_encoder_test.py data/fanfare-mono.wav 16 4 31 0 data/fanfare-4sb-mono.sbc 81 ./sbc_encoder_test.py data/fanfare-mono.wav 16 8 64 0 data/fanfare-8sb-mono.sbc 82 ./sbc_encoder_test.py data/fanfare-stereo.wav 16 4 31 2 data/fanfare-4sb-stereo.sbc 83 ./sbc_encoder_test.py data/fanfare-stereo.wav 16 8 64 2 data/fanfare-8sb-stereo.sbc 84 85clean: 86 rm -f *.pyc *.wav *.sbc data/*-decoded.wav data/*-encoded.sbc *.o $(SBC_TESTS) *.dSYM *_test data_*.h 87