CC=@CC@ CXX=@CXX@ SHELL=@SHELL@ LDFLAGS=-shared -fPIC -rdynamic ARCH=@ARCH@ SYSDIR=@abs_top_srcdir@/system/players/dvdplayer WRAPPER=@abs_top_srcdir@/xbmc/cores/DllLoader/exports/wrapper.o WRAPPER_OSX=@abs_top_srcdir@/tools/Mach5/wrapper.rb DIRS= ifneq (@USE_EXTERNAL_FFMPEG@,1) DIRS+=ffmpeg endif LIBS= ifneq (@USE_EXTERNAL_FFMPEG@,1) LIBS+=avutil-50-$(ARCH).so \ avcodec-52-$(ARCH).so \ avcore-0-$(ARCH).so \ avformat-52-$(ARCH).so \ postproc-51-$(ARCH).so \ swscale-0-$(ARCH).so endif ifneq (,$(findstring powerpc,$(ARCH))) ARCH_DIR=ppc else ifeq ($(ARCH), arm) ARCH_DIR=arm else ARCH_DIR=x86 endif endif .PHONY: $(DIRS) codecs codecs: $(addprefix $(SYSDIR)/, $(LIBS)); ifeq ($(findstring osx,$(ARCH)), osx) # Add -lbundle1.o for powerpc-osx ifeq ($(ARCH), powerpc-osx) BUNDLE1_O = -lbundle1.o endif $(SYSDIR)/avutil-50-$(ARCH).so: ffmpeg/libavutil/libavutil.dylib $(CC) -bundle -flat_namespace -undefined suppress -read_only_relocs suppress -o $@ \ ffmpeg/libavutil/*.o \ ffmpeg/libavutil/$(ARCH_DIR)/*.o $(WRAPPER_OSX) $@;mv output.so $@ chmod +x $@ $(SYSDIR)/avcodec-52-$(ARCH).so: ffmpeg/libavcodec/libavcodec.dylib $(CC) -bundle -flat_namespace -undefined suppress -read_only_relocs suppress -o $@ \ ffmpeg/libavcodec/*.o \ ffmpeg/libavcodec/$(ARCH_DIR)/*.o $(WRAPPER_OSX) $@;mv output.so $@ chmod +x $@ $(SYSDIR)/avcore-0-$(ARCH).so: ffmpeg/libavcore/libavcore.dylib $(CC) -bundle -flat_namespace -undefined suppress -read_only_relocs suppress -o $@ \ ffmpeg/libavcore/*.o $(WRAPPER_OSX) $@;mv output.so $@ chmod +x $@ $(SYSDIR)/avformat-52-$(ARCH).so: ffmpeg/libavformat/libavformat.dylib $(CC) -bundle -flat_namespace -undefined suppress -read_only_relocs suppress -o $@ \ ffmpeg/libavformat/*.o $(WRAPPER_OSX) $@;mv output.so $@ chmod +x $@ $(SYSDIR)/swscale-0-$(ARCH).so: ffmpeg/libswscale/libswscale.dylib $(CC) -bundle -flat_namespace -undefined suppress -read_only_relocs suppress -o $@ \ ffmpeg/libswscale/*.o ffmpeg/libswscale/$(ARCH_DIR)/*.o $(WRAPPER_OSX) $@;mv output.so $@ chmod +x $@ $(SYSDIR)/postproc-51-$(ARCH).so: ffmpeg/libpostproc/libpostproc.dylib $(CC) -bundle -flat_namespace -undefined suppress -read_only_relocs suppress -o $@ \ ffmpeg/libpostproc/*.o $(WRAPPER_OSX) $@;mv output.so $@ chmod +x $@ ffmpeg/libavutil/libavutil.dylib : ffmpeg; ffmpeg/libavcodec/libavcodec.dylib : ffmpeg; ffmpeg/libavcore/libavcore.dylib : ffmpeg; ffmpeg/libavformat/libavformat.dylib : ffmpeg; ffmpeg/libswscale/libswscale.dylib : ffmpeg; ffmpeg/libpostproc/libpostproc.dylib : ffmpeg; ffmpeg: $(MAKE) -C $@ else $(SYSDIR)/avutil-50-$(ARCH).so: ffmpeg/libavutil/libavutil.so cp ffmpeg/libavutil/libavutil.so $@ $(SYSDIR)/avcodec-52-$(ARCH).so: $(WRAPPER) ffmpeg/libavcodec/libavcodec.so cp ffmpeg/libavcodec/libavcodec.so $@ $(SYSDIR)/avcore-0-$(ARCH).so: $(WRAPPER) ffmpeg/libavcore/libavcore.so cp ffmpeg/libavcore/libavcore.so $@ $(SYSDIR)/avformat-52-$(ARCH).so: $(WRAPPER) ffmpeg/libavformat/libavformat.so cp ffmpeg/libavformat/libavformat.so $@ ifneq ($(ARCH), arm) $(SYSDIR)/swscale-0-$(ARCH).so: $(WRAPPER) ffmpeg/libswscale/libswscale.so cp ffmpeg/libswscale/libswscale.so $@ else # No ARM version of swscale available yet. $(SYSDIR)/swscale-0-$(ARCH).so: $(WRAPPER) ffmpeg/libswscale/libswscale.so $(CC) -o $@ $(LDFLAGS) --soname,$@ -Wl,-Bsymbolic \ ffmpeg/libswscale/*.o \ `cat $(WRAPPER:.o=.def)` $(WRAPPER) endif $(SYSDIR)/postproc-51-$(ARCH).so: $(WRAPPER) ffmpeg/libpostproc/libpostproc.so cp ffmpeg/libpostproc/libpostproc.so $@ ffmpeg/libavutil/libavutil.so : ffmpeg; ffmpeg/libavcodec/libavcodec.so : ffmpeg; ffmpeg/libavcore/libavcore.so : ffmpeg; ffmpeg/libavformat/libavformat.so : ffmpeg; ffmpeg/libswscale/libswscale.so : ffmpeg; ffmpeg/libpostproc/libpostproc.so : ffmpeg; ffmpeg: $(MAKE) -C $@ 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