2010年9月6日 星期一

The configuration/compilation steps of ushare/libupnp/libdlna

*** ffmpeg-0.4.9-0.9.20070109.rf.src.rpm extract/configuration/compilation steps

// In order that we can compile the libdlna-0.2.3, we must install the ffmpeg v0.5 (we use the ffmpeg-0.4.9-0.9.20070109.rf.src.rpm package)
// we use the special version/tag of ffmpeg to finish the libdlna copilation cause of libdlna will find the special include path (/include/ffmpeg). Since version 5.1 of ffmpeg, ffmpeg restructured the build path structure. And this will direct libdlna unable to successfully configure/compile.

# rpm2cpio ./ffmpeg-0.4.9-0.9.20070109.rf.src.rpm | cpio -ivd
# cd ffmpeg-20070109
# ./configure --prefix=/home/username/usr/ --enable-memalign-hack --enable-shared

or (20101125)
# ./configure --prefix="/usr/local" --enable-shared --disable-static --disable-debug --disable-ffserver --enable-ffmpeg --disable-ffplay --enable-memalign-hack --enable-postproc --enable-version3 --enable-zlib --disable-stripping --enable-small --enable-ipv6 --enable-gpl --disable-encoders --disable-decoders --disable-muxers --disable-demuxers --disable-parsers --disable-bsfs --disable-protocols --disable-indevs --disable-outdevs --enable-decoder=aac --enable-decoder=ac3 --enable-decoder=atrac3 --enable-decoder=mp3 --enable-decoder=jpegls --enable-decoder=mjpeg --enable-decoder=mjpegb --enable-decoder=gif --enable-decoder=png --enable-decoder=h264 --enable-decoder=mpeg1video --enable-decoder=mpeg2video --enable-decoder=mpeg4 --enable-decoder=mpeg4aac --enable-decoder=mpegvideo --enable-decoder=pcm_s16be --enable-decoder=pcm_s16le --enable-decoder=pcm_u16be --enable-decoder=pcm_u16le --enable-decoder=wmav1 --enable-decoder=wmav2 --enable-decoder=zlib --enable-demuxer=aac --enable-demuxer=ac3 --enable-demuxer=dts --enable-demuxer=ffm --enable-demuxer=mp3 --enable-demuxer=image2 --enable-demuxer=mpegps --enable-demuxer=mpegts --enable-demuxer=mpegvideo --enable-demuxer=mjpeg --enable-demuxer=rtsp --enable-demuxer=sdp --enable-demuxer=v4l2 --enable-demuxer=wav --enable-parser=ac3 --enable-parser=h264 --enable-parser=mjpeg --enable-parser=mpegaudio --enable-parser=mpegvideo --enable-parser=mpeg4video --enable-protocol=file
# make
# make install

ffmpeg-0.6.1
# ./configure --prefix=/home/username/usr/ --enable-memalign-hack --enable-shared --enable-debug=3
# make
# make install


*** libdlna-0.2.3 configuration/compilation steps

>> Because of the ffmpeg dependency libraries is not located in the standard system path, so we must specify the library path in the shell
# export LDFLAGS="-L $HOME/usr/lib"

libdlna-0.2.3
# ./configure --prefix=/home/userName/usr/ --with-ffmpeg-dir=/home/username/usr/ --enable-debug
or
# ./configure --prefix=/home/username/usr --enable-shared --enable-static --enable-debug --disable-strip --disable-optimize

libdlna-0.3.0
# ./configure --prefix=/home/username/usr --enable-debug
or
# ./configure --prefix=/home/username/usr --enable-shared --enable-static --enable-debug --disable-strip --disable-optimize --disable-sqlite

Because we don't install the emacs tools etags/ctags in the compiling server, so we just comment out the execution of TAGS.tags which will run the etags/ctags program.
# vi src/Makefile
#all: depend $(BUILD_RULES) TAGS tags
all: depend $(BUILD_RULES)



*** libupnp-1.6.6 configuration/compilation steps

# ./configure --prefix=/home/userName/usr/ --exec-prefix=/home/userName/usr/ --enable-debug
# make
# make install

*** ushare-1.1a configuration/compilation steps

>> Because of ushare use "pkg-config" to do the version dependency checking, so we must specify the pkg-config path to find the packages config files (*.pc)
# export PKG_CONFIG_PATH=/home/userName/usr/lib/pkgconfig/

>> Because the libdlna run time will need to load dynamic libraries of ffmpeg libraries, so we must specify the LD_LIBRARY path to achieve the library path searching
# export LD_LIBRARY_PATH=/home/userName/usr/lib

>> Finally we can list all the related environment variables simply by execute "printenv" command
$ printenv | grep "FLAG"; printenv | grep "PATH"
LDFLAGS=-L /home/userName/usr/lib
CFLAGS=-I /home/userName/usr/include
LD_LIBRARY_PATH=/home/userName/usr/lib
PATH=[omit]
PKG_CONFIG_PATH=/home/userName/usr/lib/pkgconfig/

ushare 1.1a
# ./configure --prefix=/home/userName/usr --with-libupnp-dir=/home/userName/usr --with-libdlna-dir=/home/userName/usr --enable-debug --enable-dlna

ushare 1.2 (download from hg repository 20101026)
# ./configure --prefix=/home/username/usr --with-libdlna-dir=/home/vincentlin/usr/lib --enable-debug

>> Edit the config.mak, add the following setting, include VERSION definition and include path of config.h for the src/presentation.c compilation usage. Of cause other .c files will also need these gcc options. This is possible a uShare bug (I am not sure :D ). FIXME, maybe it should have a standard config or solution.


modify config.mak file as following
OPTFLAGS=[original settings] -DVERSION="\"1.1a\"" -I../
[The second time I encountered the same problem but I still got mistake. :( Must remember next time! )

# make
# make install

沒有留言: