SRCS := \ audio.c \ audio_internal.c \ audio_source_file.c \ audio_source_testtone.c \ audio_demuxer_mp3.c \ audio_decoder_mp3.c \ audio_demuxer_adts.c \ audio_decoder_aac.c \ audio_filter_param_eq.c \ audio_filter_resample.c \ audio_sink_file.c \ audio_sink_libao.c INCLUDES := -Iinclude `pkg-config --cflags ao` BUILDDIR = .build TARGET := $(BUILDDIR)/libaudio.a OBJS := $(addprefix $(BUILDDIR)/, $(patsubst %.c,%.o, $(SRCS))) CC = gcc AR = ar CFLAGS = --std=gnu99 -Wall -Os all: $(TARGET) $(BUILDDIR)/libmad/libmad.a $(BUILDDIR)/speexdsp/libspeexresampler.a $(BUILDDIR)/libfaad2/libfaad2.a $(TARGET): $(OBJS) $(AR) -cr $(TARGET) $(OBJS) $(BUILDDIR)/libmad/libmad.a: (cd deps/mp3; make BUILDDIR=$(abspath $(BUILDDIR)/libmad)) $(BUILDDIR)/speexdsp/libspeexresampler.a: (cd deps/resampler; make BUILDDIR=$(abspath $(BUILDDIR)/speexdsp)) $(BUILDDIR)/libfaad2/libfaad2.a: (cd deps/aac; make BUILDDIR=$(abspath $(BUILDDIR)/libfaad2)) $(BUILDDIR)/%.o: %.c %.h $(CC) $(INCLUDES) $(CFLAGS) -c $< -o $@ $(OBJS): | $(BUILDDIR) $(BUILDDIR): mkdir -p $(BUILDDIR) .PHONY: clean clean: -rm $(OBJS) -rm $(TARGET) (cd deps/mp3; make BUILDDIR=$(abspath $(BUILDDIR)/libmad) clean) (cd deps/resampler; make BUILDDIR=$(abspath $(BUILDDIR)/speexdsp) clean) (cd deps/aac; make BUILDDIR=$(abspath $(BUILDDIR)/libfaad2) clean)