diff options
author | Erwin Rol <erwin@erwinrol.com> | 2006-06-05 13:56:21 +0000 |
---|---|---|
committer | Erwin Rol <erwin@erwinrol.com> | 2006-06-05 13:56:21 +0000 |
commit | 47313847f3c571232d85611751708f7e1fa38732 (patch) | |
tree | 26237cd54a2e9a619b267938adb2cf89de8f8371 /rules/ffmpeg.make | |
parent | 0b6df028db6a79c6ff64fef9905084051d3b65fa (diff) | |
download | ptxdist-47313847f3c571232d85611751708f7e1fa38732.tar.gz ptxdist-47313847f3c571232d85611751708f7e1fa38732.tar.xz |
Initial ffmpeg support
git-svn-id: https://svn.pengutronix.de/svn/ptxdist/trunks/ptxdist-0.10-trunk@5637 33e552b5-05e3-0310-8538-816dae2090ed
Diffstat (limited to 'rules/ffmpeg.make')
-rw-r--r-- | rules/ffmpeg.make | 460 |
1 files changed, 460 insertions, 0 deletions
diff --git a/rules/ffmpeg.make b/rules/ffmpeg.make new file mode 100644 index 000000000..35f2e6872 --- /dev/null +++ b/rules/ffmpeg.make @@ -0,0 +1,460 @@ +# -*-makefile-*- +# $Id: template 4565 2006-02-10 14:23:10Z mkl $ +# +# Copyright (C) 2006 by Erwin Rol +# +# See CREDITS for details about who has contributed to this project. +# +# For further information about the PTXdist project and license conditions +# see the README file. +# + +# +# We provide this package +# +PACKAGES-$(PTXCONF_FFMPEG) += ffmpeg + +# +# Paths and names +# +FFMPEG_VERSION := r5452 +FFMPEG := ffmpeg-$(FFMPEG_VERSION) +FFMPEG_SUFFIX := tar.bz2 +FFMPEG_URL := http://www.pengutronix.de/software/ptxdist/temporary-src/$(FFMPEG).$(FFMPEG_SUFFIX) +FFMPEG_SOURCE := $(SRCDIR)/$(FFMPEG).$(FFMPEG_SUFFIX) +FFMPEG_DIR := $(BUILDDIR)/$(FFMPEG) + +-include $(call package_depfile) + +# ---------------------------------------------------------------------------- +# Get +# ---------------------------------------------------------------------------- + +ffmpeg_get: $(STATEDIR)/ffmpeg.get + +$(STATEDIR)/ffmpeg.get: $(ffmpeg_get_deps_default) + @$(call targetinfo, $@) + @$(call touch, $@) + +$(FFMPEG_SOURCE): + @$(call targetinfo, $@) + @$(call get, FFMPEG) + +# ---------------------------------------------------------------------------- +# Extract +# ---------------------------------------------------------------------------- + +ffmpeg_extract: $(STATEDIR)/ffmpeg.extract + +$(STATEDIR)/ffmpeg.extract: $(ffmpeg_extract_deps_default) + @$(call targetinfo, $@) + @$(call clean, $(FFMPEG_DIR)) + @$(call extract, FFMPEG) + @$(call patchin, FFMPEG) + @$(call touch, $@) + +# ---------------------------------------------------------------------------- +# Prepare +# ---------------------------------------------------------------------------- + +ffmpeg_prepare: $(STATEDIR)/ffmpeg.prepare + +FFMPEG_PATH := PATH=$(CROSS_PATH):/sbin/ +FFMPEG_ENV := $(CROSS_ENV) + +# +# autoconf +# Carefull, ffmpeg has a home grown configure, and not all autoconf options work!!! :-/ +# for example it enables things by default and than only has a --disable-BLA option and no +# --enable-BLA option. +# +FFMPEG_AUTOCONF := --prefix=/usr +FFMPEG_AUTOCONF += --cross-prefix=$(COMPILER_PREFIX) +#FFMPEG_AUTOCONF += --cc=$(CROSS_CC) +#FFMPEG_AUTOCONF += --make=$(MAKE) +FFMPEG_AUTOCONF += --source-path=$(FFMPEG_DIR) +#FFMPEG_AUTOCONF += --build-suffix=SUFFIX +FFMPEG_AUTOCONF += --extra-cflags="$(CROSS_CPPFLAGS) $(CROSS_CFLAGS) -L$(SYSROOT)/usr/lib" +FFMPEG_AUTOCONF += --extra-ldflags="$(CROSS_LDFLAGS) -L$(SYSROOT)/usr/lib" +FFMPEG_AUTOCONF += --extra-libs="$(CROSS_LIBS) -lm" +#FFMPEG_AUTOCONF += --enable-mingw32 +#FFMPEG_AUTOCONF += --enable-mingwce +#FFMPEG_AUTOCONF += --enable-sunmlib +FFMPEG_AUTOCONF += --disable-audio-beos + +ifdef PTXCONF_ARCH_X86 + FFMPEG_AUTOCONF += --disable-altivec + FFMPEG_AUTOCONF += --disable-iwmmxt + ifdef PTXCONF_OPT_I386 + FFMPEG_AUTOCONF += --cpu=i386 + FFMPEG_AUTOCONF += --tune=i386 + FFMPEG_AUTOCONF += --disable-mmx + endif + ifdef PTXCONF_OPT_I486 + FFMPEG_AUTOCONF += --cpu=i486 + FFMPEG_AUTOCONF += --tune=i486 + FFMPEG_AUTOCONF += --disable-mmx + endif + ifdef PTXCONF_OPT_I586 + FFMPEG_AUTOCONF += --cpu=i586 + FFMPEG_AUTOCONF += --tune=i586 + endif + ifdef PTXCONF_OPT_I686 + FFMPEG_AUTOCONF += --cpu=i686 + FFMPEG_AUTOCONF += --tune=i686 + endif +endif + +ifdef PTXCONF_ARCH_ALPHA + FFMPEG_AUTOCONF += --disable-altivec + FFMPEG_AUTOCONF += --disable-mmx + FFMPEG_AUTOCONF += --disable-iwmmxt +endif + +ifdef PTXCONF_ARCH_ARM + FFMPEG_AUTOCONF += --disable-altivec + FFMPEG_AUTOCONF += --disable-mmx + FFMPEG_AUTOCONF += --disable-iwmmxt +endif + +ifdef PTXCONF_ARCH_ARM_NOMMU + FFMPEG_AUTOCONF += --disable-altivec + FFMPEG_AUTOCONF += --disable-mmx + FFMPEG_AUTOCONF += --disable-iwmmxt +endif + +ifdef PTXCONF_ARCH_PPC + FFMPEG_AUTOCONF += --disable-altivec + FFMPEG_AUTOCONF += --disable-mmx + FFMPEG_AUTOCONF += --disable-iwmmxt +# FFMPEG_AUTOCONF += --powerpc-perf-enable +endif + +ifdef PTXCONF_ARCH_M68K + FFMPEG_AUTOCONF += --disable-altivec + FFMPEG_AUTOCONF += --disable-mmx + FFMPEG_AUTOCONF += --disable-iwmmxt +endif + +ifdef PTXCONF_ARCH_SPARC + FFMPEG_AUTOCONF += --disable-altivec + FFMPEG_AUTOCONF += --disable-mmx + FFMPEG_AUTOCONF += --disable-iwmmxt +endif + +ifdef PTXCONF_ARCH_MIPS + FFMPEG_AUTOCONF += --disable-altivec + FFMPEG_AUTOCONF += --disable-mmx + FFMPEG_AUTOCONF += --disable-iwmmxt +endif + +ifdef PTXCONF_ARCH_CRIS + FFMPEG_AUTOCONF += --disable-altivec + FFMPEG_AUTOCONF += --disable-mmx + FFMPEG_AUTOCONF += --disable-iwmmxt +endif + +ifdef PTXCONF_ARCH_PARISC + FFMPEG_AUTOCONF += --disable-altivec + FFMPEG_AUTOCONF += --disable-mmx + FFMPEG_AUTOCONF += --disable-iwmmxt +endif + +ifdef PTXCONF_ARCH_SH + FFMPEG_AUTOCONF += --disable-altivec + FFMPEG_AUTOCONF += --disable-mmx + FFMPEG_AUTOCONF += --disable-iwmmxt +endif + +ifdef PTXCONF_FFMPEG_SHARED +FFMPEG_AUTOCONF += --enable-shared +else +FFMPEG_AUTOCONF += --disable-shared +endif + +ifdef PTXCONF_FFMPEG_STATIC +FFMPEG_AUTOCONF += --enable-static +else +FFMPEG_AUTOCONF += --disable-static +endif + +ifdef PTXCONF_FFMPEG_PTHREADS +FFMPEG_AUTOCONF += --enable-pthreads +endif + +ifndef PTXCONF_FFMPEG_FFSERVER +FFMPEG_AUTOCONF += --disable-ffserver +endif + +ifndef PTXCONF_FFMPEG_FFPLAY +FFMPEG_AUTOCONF += --disable-ffplay +endif + +ifdef PTXCONF_FFMPEG_SMALL +FFMPEG_AUTOCONF += --enable-small +endif + +ifdef PTXCONF_FFMPEG_MEMALIGN_HACK +FFMPEG_AUTOCONF += --enable-memalign-hack +endif + +ifndef PTXCONF_FFMPEG_STRIP +FFMPEG_AUTOCONF += --disable-strip +endif + +ifdef PTXCONF_FFMPEG_GPROF +FFMPEG_AUTOCONF += --enable-gprof +endif + +ifndef PTXCONF_FFMPEG_DEBUG +FFMPEG_AUTOCONF += --disable-debug +endif + +ifndef PTXCONF_FFMPEG_OPTS +FFMPEG_AUTOCONF += --disable-opts +endif + +ifdef PTXCONF_FFMPEG_GPL +FFMPEG_AUTOCONF += --enable-gpl +endif + +ifdef PTXCONF_FFMPEG_MP3LAME +FFMPEG_AUTOCONF += --enable-mp3lame +endif + +ifdef PTXCONF_FFMPEG_LIBOGG +FFMPEG_AUTOCONF += --enable-libogg +endif + +ifdef PTXCONF_FFMPEG_VORBIS +FFMPEG_AUTOCONF += --enable-vorbis +endif + +ifdef PTXCONF_FFMPEG_THEORA +FFMPEG_AUTOCONF += --enable-theora +endif + +ifdef PTXCONF_FFMPEG_FAAD +FFMPEG_AUTOCONF += --enable-faad +endif + +ifdef PTXCONF_FFMPEG_FAADBIN +FFMPEG_AUTOCONF += --enable-faadbin +endif + +ifdef PTXCONF_FFMPEG_FAAC +FFMPEG_AUTOCONF += --enable-faac +endif + +ifdef PTXCONF_FFMPEG_LIBGSM +FFMPEG_AUTOCONF += --enable-libgsm +endif + +ifdef PTXCONF_FFMPEG_XVID +FFMPEG_AUTOCONF += --enable-xvid +endif + +ifdef PTXCONF_FFMPEG_X264 +FFMPEG_AUTOCONF += --enable-x264 +endif + +ifdef PTXCONF_FFMPEG_A52 +FFMPEG_AUTOCONF += --enable-a52 +endif + +ifdef PTXCONF_FFMPEG_A52BIN +FFMPEG_AUTOCONF += --enable-a52bin +endif + +ifdef PTXCONF_FFMPEG_DTS +FFMPEG_AUTOCONF += --enable-dts +endif + +ifdef PTXCONF_FFMPEG_PP +FFMPEG_AUTOCONF += --enable-pp +endif + +ifdef PTXCONF_FFMPEG_AMR_NB +FFMPEG_AUTOCONF += --enable-amr_nb +endif + +ifdef PTXCONF_FFMPEG_AMR_NB_FIXED +FFMPEG_AUTOCONF += --enable-amr_nb-fixed +endif + +ifdef PTXCONF_FFMPEG_AMR_WB +FFMPEG_AUTOCONF += --enable-amr_wb +endif + +ifdef PTXCONF_FFMPEG_AMR_IF2 +FFMPEG_AUTOCONF += --enable-amr_if2 +endif + +ifdef PTXCONF_FFMPEG_DC1394 +FFMPEG_AUTOCONF += --enable-dc1394 +endif + +ifndef PTXCONF_FFMPEG_AUDIO_OSS +FFMPEG_AUTOCONF += --disable-audio-oss +endif + +ifndef PTXCONF_FFMPEG_V4L +FFMPEG_AUTOCONF += --disable-v4l +endif + +ifndef PTXCONF_FFMPEG_V4L2 +FFMPEG_AUTOCONF += --disable-v4l2 +endif + +ifndef PTXCONF_FFMPEG_BKTR +FFMPEG_AUTOCONF += --disable-bktr +endif + +ifndef PTXCONF_FFMPEG_DV1394 +FFMPEG_AUTOCONF += --disable-dv1394 +endif + +ifndef PTXCONF_FFMPEG_NETWORK +FFMPEG_AUTOCONF += --disable-network +endif + +ifndef PTXCONF_FFMPEG_ZLIB +FFMPEG_AUTOCONF += --disable-zlib +endif + +ifndef PTXCONF_FFMPEG_LZO +FFMPEG_AUTOCONF += --disable-lzo +endif + +ifndef PTXCONF_FFMPEG_SIMPLE_IDCT +FFMPEG_AUTOCONF += --disable-simple_idct +endif + +ifndef PTXCONF_FFMPEG_VHOOK +FFMPEG_AUTOCONF += --disable-vhook +endif + +ifndef PTXCONF_FFMPEG_MPEGAUDIO_HP +FFMPEG_AUTOCONF += --disable-mpegaudio-hp +endif + +ifndef PTXCONF_FFMPEG_PROTOCOL +FFMPEG_AUTOCONF += --disable-protocols +endif + +# FIXME selectivly enable/disable decoders to reduce library size + +#--disable-encoder=NAME disables encoder NAME +#--enable-encoder=NAME enables encoder NAME +#--disable-decoder=NAME disables decoder NAME +#--enable-decoder=NAME enables decoder NAME +#--disable-encoders disables all encoders +#--disable-decoders disables all decoders +#--disable-muxers disables all muxers +#--disable-demuxers disables all demuxers + + +$(STATEDIR)/ffmpeg.prepare: $(ffmpeg_prepare_deps_default) + @$(call targetinfo, $@) + @$(call clean, $(FFMPEG_DIR)/config.cache) + cd $(FFMPEG_DIR) && \ + $(FFMPEG_PATH) $(FFMPEG_ENV) \ + ./configure $(FFMPEG_AUTOCONF) + @$(call touch, $@) + +# ---------------------------------------------------------------------------- +# Compile +# ---------------------------------------------------------------------------- + +ffmpeg_compile: $(STATEDIR)/ffmpeg.compile + +$(STATEDIR)/ffmpeg.compile: $(ffmpeg_compile_deps_default) + @$(call targetinfo, $@) + cd $(FFMPEG_DIR) && $(FFMPEG_PATH) make $(FFMPEG_MAKEVARS) + @$(call touch, $@) + +# ---------------------------------------------------------------------------- +# Install +# ---------------------------------------------------------------------------- + +ffmpeg_install: $(STATEDIR)/ffmpeg.install + +$(STATEDIR)/ffmpeg.install: $(ffmpeg_install_deps_default) + @$(call targetinfo, $@) + @$(call install, FFMPEG) + @$(call touch, $@) + +# ---------------------------------------------------------------------------- +# Target-Install +# ---------------------------------------------------------------------------- + +ffmpeg_targetinstall: $(STATEDIR)/ffmpeg.targetinstall + +$(STATEDIR)/ffmpeg.targetinstall: $(ffmpeg_targetinstall_deps_default) + @$(call targetinfo, $@) + + @$(call install_init, ffmpeg) + @$(call install_fixup, ffmpeg,PACKAGE,ffmpeg) + @$(call install_fixup, ffmpeg,PRIORITY,optional) + @$(call install_fixup, ffmpeg,VERSION,$(FFMPEG_VERSION)) + @$(call install_fixup, ffmpeg,SECTION,base) + @$(call install_fixup, ffmpeg,AUTHOR,"Erwin Rol <ero\@pengutronix.de>") + @$(call install_fixup, ffmpeg,DEPENDS,) + @$(call install_fixup, ffmpeg,DESCRIPTION,missing) + + @$(call install_copy, ffmpeg, 0, 0, 0644, \ + $(FFMPEG_DIR)/libavcodec/libavcodec.so, \ + /usr/lib/libavcodec.so, n) + @$(call install_link, ffmpeg, \ + libavcodec.so, \ + /usr/lib/libavcodec.so.51) + @$(call install_link, ffmpeg, \ + libavcodec.so, \ + /usr/lib/libavcodec.so.51.7.0) + + @$(call install_copy, ffmpeg, 0, 0, 0644, \ + $(FFMPEG_DIR)/libavformat/libavformat.so, \ + /usr/lib/libavformat.so, n) + @$(call install_link, ffmpeg, \ + libavformat.so, \ + /usr/lib/libavformat.so.50) + @$(call install_link, ffmpeg, \ + libavformat.so, \ + /usr/lib/libavformat.so.50.3.0) + + @$(call install_copy, ffmpeg, 0, 0, 0644, \ + $(FFMPEG_DIR)/libavutil/libavutil.so, \ + /usr/lib/libavutil.so, n) + @$(call install_link, ffmpeg, \ + libavutil.so, \ + /usr/lib/libavutil.so.49) + @$(call install_link, ffmpeg, \ + libavcodec.so, \ + /usr/lib/libavutil.so.49.0.0) + +ifdef PTXCONF_FFMPEG_PP + @$(call install_copy, ffmpeg, 0, 0, 0644, \ + $(FFMPEG_DIR)/libpostproc/libpostproc.so, \ + /usr/lib/libpostproc.so, n) + @$(call install_link, ffmpeg, \ + libpostproc.so, \ + /usr/lib/libpostproc.so.51) + @$(call install_link, ffmpeg, \ + libpostproc.so, \ + /usr/lib/libpostproc.so.51.0.0) +endif + + @$(call install_finish, ffmpeg) + + @$(call touch, $@) + +# ---------------------------------------------------------------------------- +# Clean +# ---------------------------------------------------------------------------- + +ffmpeg_clean: + rm -rf $(STATEDIR)/ffmpeg.* + rm -rf $(IMAGEDIR)/ffmpeg_* + rm -rf $(FFMPEG_DIR) + +# vim: syntax=make |