ARCH=i486-linux

AR=ar
LD=/usr/bin/ld
CC=ccache cc
CXX=ccache g++
SYSDIR=/home/marillat/src/xbmc-13.0~alpha9/system/players/dvdplayer

ifeq (,1)
AVPREFIX=lib
else
AVPREFIX=
endif

AVFORMAT_SO=$(AVPREFIX)avformat-54-$(ARCH).so
AVCODEC_SO=$(AVPREFIX)avcodec-54-$(ARCH).so
AVUTIL_SO=$(AVPREFIX)avutil-52-$(ARCH).so
AVFILTER_SO=$(AVPREFIX)avfilter-3-$(ARCH).so
SWSCALE_SO=$(AVPREFIX)swscale-2-$(ARCH).so
POSTPROC_SO=$(AVPREFIX)postproc-52-$(ARCH).so
SWRESAMPLE_SO=$(AVPREFIX)swresample-0-$(ARCH).so

DIRS=
ifneq (1,1)
  DIRS+=ffmpeg
endif

LIBS=
ifneq (1,1)
  LIBS+=$(AVUTIL_SO) \
	$(AVCODEC_SO) \
	$(AVFORMAT_SO) \
	$(POSTPROC_SO) \
	$(AVFILTER_SO) \
	$(SWSCALE_SO) \
	$(SWRESAMPLE_SO)
endif

.PHONY: $(DIRS) codecs

ifneq ($(findstring osx,$(ARCH)), osx)

codecs: $(addprefix $(SYSDIR)/, $(LIBS));

$(SYSDIR)/$(AVUTIL_SO): ffmpeg/libavutil/libavutil.so
	cp ffmpeg/libavutil/libavutil.so $@

$(SYSDIR)/$(AVCODEC_SO): ffmpeg/libavcodec/libavcodec.so
	cp ffmpeg/libavcodec/libavcodec.so $@

$(SYSDIR)/$(AVFORMAT_SO): ffmpeg/libavformat/libavformat.so
	cp ffmpeg/libavformat/libavformat.so $@

$(SYSDIR)/$(AVFILTER_SO): ffmpeg/libavfilter/libavfilter.so
	cp ffmpeg/libavfilter/libavfilter.so $@

$(SYSDIR)/$(SWSCALE_SO): ffmpeg/libswscale/libswscale.so
	cp ffmpeg/libswscale/libswscale.so $@

$(SYSDIR)/$(POSTPROC_SO): ffmpeg/libpostproc/libpostproc.so
	cp ffmpeg/libpostproc/libpostproc.so $@

$(SYSDIR)/$(SWRESAMPLE_SO): ffmpeg/libswresample/libswresample.so
	cp ffmpeg/libswresample/libswresample.so $@

ffmpeg/libavutil/libavutil.so     : ffmpeg;
ffmpeg/libavcodec/libavcodec.so   : ffmpeg;
ffmpeg/libavformat/libavformat.so : ffmpeg;
ffmpeg/libavfilter/libavfilter.so : ffmpeg;
ffmpeg/libswscale/libswscale.so   : ffmpeg;
ffmpeg/libpostproc/libpostproc.so : ffmpeg;
ffmpeg/libswresample/libswresample.so : ffmpeg;
endif

ffmpeg:
	$(MAKE) -C $@
ifeq ($(findstring osx,$(ARCH)), osx)
	-$(AR) d ffmpeg/libavcodec/libavcodec.a log2_tab.o
	-$(AR) d ffmpeg/libavformat/libavformat.a log2_tab.o
	-$(AR) d ffmpeg/libswresample/libswresample.a log2_tab.o
endif

clean:
	rm -f $(addprefix $(SYSDIR)/, $(LIBS))
	for d in $(DIRS); do (if test -f "$$d/Makefile"; then ($(MAKE) -C "$$d" clean); fi ); done

distclean:
	rm -f $(addprefix $(SYSDIR)/, $(LIBS))
	for d in $(DIRS); do (if test -f "$$d/Makefile"; then ($(MAKE) -C "$$d" distclean || $(MAKE) -C "$$d" clean); fi ); done
