summaryrefslogtreecommitdiff
path: root/package/multimedia/mplayer/mplayer.mk
diff options
context:
space:
mode:
authorThomas Petazzoni <thomas.petazzoni@free-electrons.com>2010-12-12 22:54:03 +0100
committerPeter Korsgaard <jacmet@sunsite.dk>2010-12-14 01:28:08 +0100
commit6bcedeed375c3504d4d6f82fca020790866e2c6e (patch)
tree68eac4781e1542ec928b3a75ae46b72fef2ded54 /package/multimedia/mplayer/mplayer.mk
parent1e17f73d279e71d6669649d2a16835b3d45fed48 (diff)
mplayer: convert to gentargets, bump to a recent SVN version
Based on the conversion to gentargets done by Martin Banky, several issues were fixed, and the mplayer package was improved: * Updated to a recent SVN version * Removed mandatory dependency on libmad * The AVR32 specific patch has been removed. It was a pain to remain blocked at the old 1.0-rc2 just for this patch. All this optimization work should have been submitted upstream, Buildroot is not the place to carry such heavy modifications. * Options were added to select whether mplayer and/or mencoder should be built/installed. * Support for additional options if packages have been selected: tremor, libmad, libtheora, libpng, jpeg, xlib_libX11, xlib_libXv. More could be added in the future. * Support for ARM-related optimization options. Similar improvements could be done for x86 and PowerPC architectures. [Peter: fix build with !IPV6] Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Diffstat (limited to 'package/multimedia/mplayer/mplayer.mk')
-rw-r--r--package/multimedia/mplayer/mplayer.mk156
1 files changed, 87 insertions, 69 deletions
diff --git a/package/multimedia/mplayer/mplayer.mk b/package/multimedia/mplayer/mplayer.mk
index 93e38dab8..bd5c07900 100644
--- a/package/multimedia/mplayer/mplayer.mk
+++ b/package/multimedia/mplayer/mplayer.mk
@@ -3,128 +3,146 @@
# mplayer
#
#############################################################
-MPLAYER_VERSION:=1.0rc2
-MPLAYER_SOURCE:=MPlayer-$(MPLAYER_VERSION).tar.bz2
-MPLAYER_SITE:=http://www7.mplayerhq.hu/MPlayer/releases
-MPLAYER_DIR:=$(BUILD_DIR)/MPlayer-$(MPLAYER_VERSION)
-MPLAYER_CAT:=$(BZCAT)
-MPLAYER_BINARY:=mplayer
-MPLAYER_TARGET_BINARY:=usr/bin/$(MPLAYER_BINARY)
-
-MPLAYER_DEPENDENCIES = $(if $(BR2_PACKAGE_LIBMAD),libmad)
+MPLAYER_VERSION = 32710
+# MPLAYER_SOURCE = MPlayer-$(MPLAYER_VERSION).tar.bz2
+# MPLAYER_SITE = http://www.mplayerhq.hu/MPlayer/releases
+MPLAYER_SITE = svn://svn.mplayerhq.hu/mplayer/trunk
# mplayer needs pcm+mixer support, but configure fails to check for it
ifeq ($(BR2_PACKAGE_ALSA_LIB)$(BR2_PACKAGE_ALSA_LIB_MIXER)$(BR2_PACKAGE_ALSA_LIB_PCM),yyy)
MPLAYER_DEPENDENCIES += alsa-lib
-MPLAYER_ALSA:=--enable-alsa
+MPLAYER_CONF_OPTS += --enable-alsa
else
-MPLAYER_ALSA:=--disable-alsa
+MPLAYER_CONF_OPTS += --disable-alsa
endif
ifeq ($(BR2_ENDIAN),"BIG")
-MPLAYER_ENDIAN:=--enable-big-endian
+MPLAYER_CONF_OPTS += --enable-big-endian
else
-MPLAYER_ENDIAN:=--disable-big-endian
+MPLAYER_CONF_OPTS += --disable-big-endian
endif
-# mplayer unfortunately uses --disable-largefileS, so we cannot use
+# mplayer unfortunately uses --disable-largefiles, so we cannot use
# DISABLE_LARGEFILE
ifeq ($(BR2_LARGEFILE),y)
-MPLAYER_LARGEFILE:=--enable-largefiles
+MPLAYER_CONF_OPTS += --enable-largefiles
else
# dvdread/dvdcss requires largefile support
-MPLAYER_LARGEFILE:=--disable-largefiles \
- --disable-dvdread-internal \
- --disable-libdvdcss-internal
+MPLAYER_CONF_OPTS += \
+ --disable-largefiles \
+ --disable-dvdread-internal \
+ --disable-libdvdcss-internal
endif
ifeq ($(BR2_PACKAGE_SDL),y)
-MPLAYER_SDL:=--enable-sdl --with-sdl-config=$(STAGING_DIR)/usr/bin/sdl-config
+MPLAYER_CONF_OPTS += \
+ --enable-sdl \
+ --with-sdl-config=$(STAGING_DIR)/usr/bin/sdl-config
MPLAYER_DEPENDENCIES += sdl
else
-MPLAYER_SDL:=--disable-sdl
+MPLAYER_CONF_OPTS += --disable-sdl
endif
ifeq ($(BR2_PACKAGE_FREETYPE),y)
-MPLAYER_FREETYPE:= \
+MPLAYER_CONF_OPTS += \
--enable-freetype \
--with-freetype-config=$(STAGING_DIR)/usr/bin/freetype-config
MPLAYER_DEPENDENCIES += freetype
else
-MPLAYER_FREETYPE:=--disable-freetype
+MPLAYER_CONF_OPTS += --disable-freetype
+endif
+
+ifeq ($(BR2_PACKAGE_MPLAYER_MPLAYER),y)
+MPLAYER_CONF_OPTS += --enable-mplayer
+else
+MPLAYER_CONF_OPTS += --disable-mplayer
endif
-ifeq ($(BR2_i386),y)
-# This seems to be required to compile some of the inline asm
-MPLAYER_CFLAGS:=-fomit-frame-pointer
+ifeq ($(BR2_PACKAGE_MPLAYER_MENCODER),y)
+MPLAYER_CONF_OPTS += --enable-mencoder
+else
+MPLAYER_CONF_OPTS += --disable-mencoder
endif
-$(DL_DIR)/$(MPLAYER_SOURCE):
- $(call DOWNLOAD,$(MPLAYER_SITE),$(MPLAYER_SOURCE))
+ifeq ($(BR2_PACKAGE_TREMOR),y)
+MPLAYER_DEPENDENCIES += tremor
+MPLAYER_CONF_OPTS += --disable-tremor-internal --enable-tremor
+endif
-$(MPLAYER_DIR)/.unpacked: $(DL_DIR)/$(MPLAYER_SOURCE)
- $(MPLAYER_CAT) $(DL_DIR)/$(MPLAYER_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
- toolchain/patch-kernel.sh $(MPLAYER_DIR) package/multimedia/mplayer/ mplayer-$(MPLAYER_VERSION)\*.patch\*
- $(CONFIG_UPDATE) $(MPLAYER_DIR)
- touch $@
+ifeq ($(BR2_PACKAGE_MAD),y)
+MPLAYER_DEPENDENCIES += libmad
+else
+MPLAYER_CONF_OPTS += --disable-mad
+endif
+
+MPLAYER_DEPENDENCIES += $(if $(BR2_PACKAGE_LIBTHEORA),libtheora)
+MPLAYER_DEPENDENCIES += $(if $(BR2_PACKAGE_LIBPNG),libpng)
+MPLAYER_DEPENDENCIES += $(if $(BR2_PACKAGE_JPEG),jpeg)
+MPLAYER_DEPENDENCIES += $(if $(BR2_PACKAGE_XLIB_LIBX11),xlib_libX11)
+MPLAYER_DEPENDENCIES += $(if $(BR2_PACKAGE_XLIB_LIBXV),xlib_libXv)
+
+# ARM optimizations
+ifeq ($(call qstrip,$(BR2_GCC_TARGET_ARCH)),armv5te)
+MPLAYER_CONF_OPTS += --enable-armv5te
+endif
-$(MPLAYER_DIR)/.configured: $(MPLAYER_DIR)/.unpacked
- (cd $(MPLAYER_DIR); rm -rf config.cache; \
+ifeq ($(call qstrip,$(BR2_GCC_TARGET_ARCH)),armv6j)
+MPLAYER_CONF_OPTS += --enable-armv6
+endif
+
+ifeq ($(call qstrip,$(BR2_GCC_TARGET_ARCH)),armv7-a)
+MPLAYER_CONF_OPTS += --enable-neon
+endif
+
+define MPLAYER_CONFIGURE_CMDS
+ (cd $(@D); rm -rf config.cache; \
$(TARGET_CONFIGURE_OPTS) \
$(TARGET_CONFIGURE_ARGS) \
- CFLAGS="$(TARGET_CFLAGS) $(MPLAYER_CFLAGS)" \
- LDFLAGS="$(TARGET_LDFLAGS)" \
./configure \
--prefix=/usr \
--confdir=/etc \
--target=$(GNU_TARGET_NAME) \
- --host-cc=$(HOSTCC) \
+ --host-cc="$(HOSTCC)" \
--cc="$(TARGET_CC)" \
- --as=$(TARGET_CROSS)as \
- --with-extraincdir=$(STAGING_DIR)/usr/include \
- --with-extralibdir=$(STAGING_DIR)/lib \
+ --as="$(TARGET_AS)" \
--charset=UTF-8 \
+ --extra-cflags="$(TARGET_CFLAGS)" \
+ --extra-ldflags="$(TARGET_LDFLAGS)" \
--enable-mad \
--enable-fbdev \
- $(MPLAYER_ENDIAN) \
- $(MPLAYER_LARGEFILE) \
- $(MPLAYER_SDL) \
- $(MPLAYER_FREETYPE) \
- $(MPLAYER_ALSA) \
+ $(MPLAYER_CONF_OPTS) \
--enable-cross-compile \
--disable-ivtv \
--disable-tv \
--disable-live \
--enable-dynamic-plugins \
)
- touch $@
+endef
-$(MPLAYER_DIR)/$(MPLAYER_BINARY): $(MPLAYER_DIR)/.configured
- $(MAKE1) -C $(MPLAYER_DIR)
- touch -c $@
+# this is available on uClibc 0.9.31 even without ipv6 support, breaking the
+# build in ffmpeg/libavformat/udp.c
+ifneq ($(BR2_INET_IPV6),y)
+define MPLAYER_FIXUP_IPV6_MREQ_DETECTION
+ $(SED) 's/\(#define HAVE_STRUCT_IPV6_MREQ\) 1/\1 0/' $(@D)/config.h
+endef
-$(TARGET_DIR)/$(MPLAYER_TARGET_BINARY): $(MPLAYER_DIR)/$(MPLAYER_BINARY)
- $(INSTALL) -m 0755 -D $(MPLAYER_DIR)/$(MPLAYER_BINARY) $(TARGET_DIR)/$(MPLAYER_TARGET_BINARY)
- -$(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $(TARGET_DIR)/$(MPLAYER_TARGET_BINARY)
- touch -c $@
+MPLAYER_POST_CONFIGURE_HOOKS += MPLAYER_FIXUP_IPV6_MREQ_DETECTION
+endif
-mplayer: $(MPLAYER_DEPENDENCIES) $(TARGET_DIR)/$(MPLAYER_TARGET_BINARY)
+define MPLAYER_BUILD_CMDS
+ $(MAKE) -C $(@D)
+endef
-mplayer-source: $(DL_DIR)/$(MPLAYER_SOURCE)
+define MPLAYER_INSTALL_TARGET_CMDS
+ $(MAKE) DESTDIR=$(TARGET_DIR) -C $(@D) install
+endef
-mplayer-unpacked: $(MPLAYER_DIR)/.unpacked
+define MPLAYER_UNINSTALL_TARGET_CMDS
+ $(MAKE) DESTDIR=$(TARGET_DIR) -C $(@D) uninstall
+endef
-mplayer-clean:
- rm -f $(TARGET_DIR)/$(MPLAYER_TARGET_BINARY)
- -$(MAKE) -C $(MPLAYER_DIR) clean
+define MPLAYER_CLEAN_CMDS
+ $(MAKE) -C $(@D) clean
+endef
-mplayer-dirclean:
- rm -rf $(MPLAYER_DIR)
-#############################################################
-#
-# Toplevel Makefile options
-#
-#############################################################
-ifeq ($(BR2_PACKAGE_MPLAYER),y)
-TARGETS+=mplayer
-endif
+$(eval $(call GENTARGETS,package/multimedia,mplayer))