]> git.openpandora.org Git - openembedded.git/commitdiff
ffmpeg: moved to native staging
authorEnrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
Wed, 17 Mar 2010 07:38:56 +0000 (07:38 +0000)
committerKoen Kooi <koen@openembedded.org>
Thu, 18 Mar 2010 15:39:28 +0000 (16:39 +0100)
Old .inc file listed every single header which was to be staged.  This
causes problems when upgrading to recent 0.5.1 version or when using
older versions because headers might not exist there resp. new ones
need to be installed.

This patch converts the .inc file to new native staging method and
which calls two new functions:

* ffmpeg_create_compat_links:
  - this creates symlinks to all installed headers into the ffmpeg/
    directory. E.g.

    adler32.h -> ../libavutil/adler32.h

  - it should be probably checked whether these links are really
    needed (they are not provided by ffmpeg and other programs might
    get confused when they see new and old headers).  For now; I kept
    them.

* ffmpeg_stage_cleanup:
  - this removes data and plugin files

Signed-off-by: Enrico Scholz <enrico.scholz@sigma-chemnitz.de>
Signed-off-by: Koen Kooi <koen@openembedded.org>
recipes/ffmpeg/ffmpeg.inc

index 857dad5f90bb354950e2ca0469ee891233645e89..c855877e8d5ff4fc1514560229e4ca8aee58d17d 100644 (file)
@@ -10,7 +10,7 @@ ARM_INSTRUCTION_SET = "arm"
 DEPENDS = "zlib libogg libvorbis libtheora faac faad2 ${@base_conditional('ENTERPRISE_DISTRO', '1', '', 'lame liba52', d)}"
 RSUGGESTS = "mplayer"
 
-INC_PR = "r12"
+INC_PR = "r13"
 
 inherit autotools pkgconfig
 
@@ -30,45 +30,26 @@ EXTRA_OECONF = "\
         \
 "
 
-do_stage() {
-        for lib in libavcodec libavdevice libavformat \
-                   libavutil libpostproc libswscale
-        do
-            oe_libinstall -a -so -C $lib $lib ${STAGING_LIBDIR} || true
-            install -d ${STAGING_INCDIR}/$lib 
-        done 
-
-        install -d ${STAGING_INCDIR}/ffmpeg
-
-        install -m 0644 ${S}/libavcodec/avcodec.h ${STAGING_INCDIR}/ffmpeg/avcodec.h
-        install -m 0644 ${S}/libavcodec/opt.h ${STAGING_INCDIR}/ffmpeg/opt.h
-        install -m 0644 ${S}/libavcodec/avcodec.h ${STAGING_INCDIR}/libavcodec/avcodec.h
-        install -m 0644 ${S}/libavcodec/opt.h ${STAGING_INCDIR}/libavcodec/opt.h
-
-        install -m 0644 ${S}/libavdevice/avdevice.h  ${STAGING_INCDIR}/ffmpeg/avdevice.h
-        
-        for h in avformat.h avio.h rtp.h rtsp.h rtspcodes.h
-        do
-           install -m 0644 ${S}/libavformat/$h  ${STAGING_INCDIR}/ffmpeg/$h
-           install -m 0644 ${S}/libavformat/$h  ${STAGING_INCDIR}/libavformat/$h       
-       done
-
-               for h in adler32.h aes.h attributes.h avstring.h avutil.h base64.h bswap.h common.h crc_data.h crc.h des.h error.h fifo.h integer.h internal.h intfloat_readwrite.h intmath.h intreadwrite.h lfg.h libm.h lls.h log.h lzo.h mathematics.h md5.h mem.h pca.h pixdesc.h pixfmt.h random_seed.h rational.h rc4.h sha1.h sha.h softfloat.h timer.h tree.h x86_cpu.h
-               do
-           install -m 0644 ${S}/libavutil/$h        ${STAGING_INCDIR}/ffmpeg/$h
-           install -m 0644 ${S}/libavutil/$h        ${STAGING_INCDIR}/libavutil/$h 
-        done
-        install -m 0644 ${B}/libavutil/avconfig.h ${STAGING_INCDIR}/ffmpeg/
-        install -m 0644 ${B}/libavutil/avconfig.h ${STAGING_INCDIR}/libavutil/
+FFMPEG_LIBS = "libavcodec libavdevice libavformat \
+               libavutil libpostproc libswscale"
+
+SYSROOT_PREPROCESS_FUNCS = " \
+  ffmpeg_stage_cleanup \
+  ffmpeg_create_compat_links"
+
+ffmpeg_create_compat_links() {
+        rm -rf ${SYSROOT_DESTDIR}${STAGING_INCDIR}/ffmpeg
+        mkdir -m 0755 ${SYSROOT_DESTDIR}${STAGING_INCDIR}/ffmpeg
+        cd ${SYSROOT_DESTDIR}${STAGING_INCDIR}/ffmpeg
 
-        install -d ${STAGING_INCDIR}/libswscale/ 
-        install -m 0644 ${S}/libswscale/*.h ${STAGING_INCDIR}/ffmpeg/
-        install -m 0644 ${S}/libswscale/*.h ${STAGING_INCDIR}/libswscale/
+        for lib in ${FFMPEG_LIBS}; do
+                ln -s ../$lib/*.h '.'
+        done
+}
 
-        install -d ${STAGING_INCDIR}/libpostproc
-        install -d ${STAGING_INCDIR}/postproc 
-        install -m 0644 ${S}/libpostproc/postprocess.h ${STAGING_INCDIR}/libpostproc/postprocess.h
-        install -m 0644 ${S}/libpostproc/postprocess.h ${STAGING_INCDIR}/postproc/postprocess.h
+ffmpeg_stage_cleanup() {
+        rm -rf ${SYSROOT_DESTDIR}${STAGING_LIBDIR}/vhook \
+        ${SYSROOT_DESTDIR}${STAGING_DATADIR}
 }