Hello Sam!

I attached my modified version of your ffmpeg/debian/rules file. I hope
this helps you to fix my "ffmpeg: Unoptimized is too slow" bug 290447.

I switched to build two complete versions of ffmpeg (one without PIC for
a static ffmpeg, one with PIC for the _lic.a libraries) in separate
build directories, so debian/rules doesn't have to fiddle around with
changeing libav*/Makefile via sed.

libavcodec/libpostproc/postprocess*.c doesn't build with both MMX and
PIC enabled, so currently no libpostprocess_pic.a is installed.

This isn't perfect yet, because I haven't yet checked which other
architectured (!= i386) beed an additional compiler run to build PIC
versions.

BYtE
Philipp
-- 
Philipp Matthias Hahn <[EMAIL PROTECTED]>
 GPG/PGP: 9A540E39 @ keyrings.debian.org
#!/usr/bin/make -f

#export DH_VERBOSE=1
DEB_HOST_GNU_TYPE   ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
DEB_BUILD_GNU_TYPE  ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)

confflags += --enable-gpl --enable-pp
confflags += --enable-zlib --enable-vorbis --enable-a52 --enable-dts
confflags += --disable-debug
confflags += --enable-pthreads

TMP_all := $(PWD)/build-all/
TMP_lib := $(PWD)/build-lib/
confflags_lib += --disable-mmx --disable-altivec --enable-shared
CFLAGS_lib := -fPIC -DPIC

build: build-all-stamp build-lib-stamp

build-%: build-%-stamp
build-%-stamp:
        mkdir -p $(TMP_$*)
        cd $(TMP_$*) && CFLAGS="$(CFLAGS_$*)" $(PWD)/configure $(confflags) 
$(confflags_$*) --prefix=/usr
        $(MAKE) -C $(TMP_$*) $*
        touch build-$*-stamp

clean:
        dh_testdir
        dh_testroot
        $(RM) -r $(TMP_all) build-all-stamp
        $(RM) -r $(TMP_lib) build-lib-stamp
        $(RM) config.log
        rm -f build-stamp configure-stamp
        dh_clean

install: build
        dh_testdir
        dh_testroot
        dh_clean -k
        dh_installdirs -pffmpeg usr/share/doc/ffmpeg/html etc
        dh_installdirs -plibavcodec-dev usr/include/ffmpeg usr/lib usr/bin 
usr/share/man/man1
        dh_installdirs -plibpostproc-dev usr/include/postproc usr/lib
        dh_installdirs -plibavformat-dev usr/include/ffmpeg usr/lib

        $(MAKE) -C $(TMP_all) install DESTDIR=$(PWD)/debian/ffmpeg 
mandir=$(PWD)/debian/ffmpeg-$*/usr/share/man

        cp $(TMP_all)/libavcodec/libavcodec.a debian/libavcodec-dev/usr/lib/
        cp $(TMP_all)/libavcodec/libpostproc/libpostproc.a 
debian/libpostproc-dev/usr/lib/
        cp $(TMP_lib)/libavcodec/libavcodec.a 
debian/libavcodec-dev/usr/lib/libavcodec_pic.a
        cp libavcodec/avcodec.h debian/libavcodec-dev/usr/include/ffmpeg/
        cp libavcodec/bswap.h debian/libavcodec-dev/usr/include/ffmpeg/
        cp libavcodec/common.h debian/libavcodec-dev/usr/include/ffmpeg/
        cp libavcodec/dsputil.h debian/libavcodec-dev/usr/include/ffmpeg/
        cp libavcodec/rational.h debian/libavcodec-dev/usr/include/ffmpeg/
        cp $(TMP_lib)/libavcodec/libpostproc/libpostproc.a 
debian/libpostproc-dev/usr/lib/libpostproc_pic.a
        cp libavcodec/libpostproc/postprocess.h 
debian/libpostproc-dev/usr/include/postproc/

        cp $(TMP_all)/libavformat/libavformat.a debian/libavformat-dev/usr/lib/
        cp $(TMP_lib)/libavformat/libavformat.a 
debian/libavformat-dev/usr/lib/libavformat_pic.a
        cp libavformat/avformat.h debian/libavformat-dev/usr/include/ffmpeg/
        cp libavformat/avio.h debian/libavformat-dev/usr/include/ffmpeg/
        cp libavformat/os_support.h debian/libavformat-dev/usr/include/ffmpeg/
        cp libavformat/rtp.h debian/libavformat-dev/usr/include/ffmpeg/
        cp libavformat/rtsp.h debian/libavformat-dev/usr/include/ffmpeg/
        cp libavformat/rtspcodes.h debian/libavformat-dev/usr/include/ffmpeg/

        cp $(TMP_all)/doc/*.html debian/ffmpeg/usr/share/doc/ffmpeg/html/
        cp doc/ffserver.conf debian/ffmpeg/etc/

        sed s/@VERSION@/`dpkg-parsechangelog | sed -ne 's/^Version: //p'`/ 
ffmpeg-config.in > debian/libavcodec-dev/usr/bin/ffmpeg-config
        chmod 644 debian/libavcodec-dev/usr/bin/ffmpeg-config
        cp ffmpeg-config.1 
debian/libavcodec-dev/usr/share/man/man1/ffmpeg-config.1

# Build architecture-independent files here.
binary-indep: build install
# We have nothing to do by default.

# Build architecture-dependent files here.
binary-arch: build install
#       dh_testversion
        dh_testdir
        dh_testroot
#       dh_installdebconf
        dh_installdocs doc/ffmpeg_powerpc_performance_evaluation_howto.txt 
doc/optimization.txt
        dh_installdocs -A CREDITS doc/TODO debian/patents.txt 
debian/README.Debian
        dh_installexamples doc/ffserver.conf
        dh_installmenu
#       dh_installemacsen
#       dh_installpam
#       dh_installinit
        dh_installcron
#       dh_installmanpages
        dh_installinfo
        dh_installmime
#       dh_undocumented
        dh_installchangelogs Changelog
        dh_link
        dh_strip
        dh_compress
        dh_fixperms
#       dh_makeshlibs
        dh_installdeb
#       dh_perl
        dh_shlibdeps
        dh_gencontrol
        dh_md5sums
        dh_builddeb

binary: binary-indep binary-arch
.PHONY: build clean binary-indep binary-arch binary install build-bin build-lib

Reply via email to