A way to compile mplayer as dll in MinGW+MSYS environment

李鑫 <[email protected]> Wed, 11 Aug 2010 09:09:51 +0800
Newsgroups gmane.comp.video.mplayer.cygwin
Message-ID <[email protected]>
--002215b040c61aa5de048d81e899
Content-Type: text/plain; charset=ISO-8859-1

Hi, all,
I try a way to compile mplayer as dll in MinGW+MSYS environment.
step 1, download source code of mplayer from
http://www.mplayerhq.hu/design7/dload.html or download snapshot version
http://www.mplayerhq.hu/MPlayer/releases/mplayer-export-snapshot.tar.bz2, I
choice snapshot version. And uncompress it into C:\.

step 2, download MinGW+MSYS environment from
http://sourceforge.net/projects/mplayer-ww/files, I download the latest
version MinGW-full-20100518, and uncompress it into C:\MinGW.

step 3, create a file named autoconf, content listed below:
--------------------------------------------------------------------------------------------------
./configure --disable-mencoder --disable-debug --enable-runtime-cpudetection
--disable-sdl --disable-pthreads --enable-static --enable-w32threads
--------------------------------------------------------------------------------------------------

step 4, modify c:\mplayer-export-2010-08-10\mplayer.c, find "#ifndef
DISABLE_MAIN", add a line "#define DISABLE_MAIN" before it, save it.

step 5, create a file named Makefile_dll, content listed below:
--------------------------------------------------------------------------------------------------

include config.mak
DIRS = input libaf libao2 libass libdvdcss libdvdnav libdvdnav/vm
libdvdread4 libfaad2 libmpcodecs libmpdemux libmpeg2 libvo loader loader/dmo
loader/dshow mp3lib osdep stream stream/freesdp stream/librtsp
stream/realrtsp tremor vidix

ALL_OBJS = $(foreach DIR, $(DIRS), $(wildcard $(DIR)/*.o))

MPLAYER_OBJS = $(wildcard *.o)

INNER_LIBS = libavformat/libavformat.a libavcodec/libavcodec.a
libavcore/libavcore.a libavutil/libavutil.a libpostproc/libpostproc.a
libswscale/libswscale.a

# $(EXTRALIBS) come from config.mak
OTHER_LIBS = $(EXTRALIBS)

# $(EXTRALIBS_MPLAYER) come from config.mak
LIBS = $(EXTRALIBS_MPLAYER)

mplayer.dll : $(OBJS_MPLAYER) $(ALL_OBJS)
    dllwrap --output-lib=libmplayer.a --dllname=$@ --driver-name=gcc
--export-all-symbols $(MPLAYER_OBJS) $(ALL_OBJS) $(INNER_LIBS) $(OTHER_LIBS)
$(LIBS)
--------------------------------------------------------------------------------------------------

step 6 run C:\MinGW\msys.bat, do commands like below:
$cd /c/mplayer-export-2010-08-10
$./autoconf
$make
$make -f Makefile_dll

when follow those steps, you will get mplayer.dll and libmplayer.a two files
under c:\mplayer-export-2010-08-10. enjoy.
PS: two files are attched in mail.

jacky_zz
2010-08-11

--002215b040c61aa5de048d81e899
Content-Type: application/octet-stream; name=autoconf
Content-Disposition: attachment; filename=autoconf
Content-Transfer-Encoding: base64
X-Attachment-Id: f_gcphfj3j0

Li9jb25maWd1cmUgLS1kaXNhYmxlLW1lbmNvZGVyIC0tZGlzYWJsZS1kZWJ1ZyAtLWVuYWJsZS1y
dW50aW1lLWNwdWRldGVjdGlvbiAtLWRpc2FibGUtc2RsIC0tZGlzYWJsZS1wdGhyZWFkcyAtLWVu
YWJsZS1zdGF0aWMgLS1lbmFibGUtdzMydGhyZWFkcw0K
--002215b040c61aa5de048d81e899
Content-Type: application/octet-stream; name=Makefile_dll
Content-Disposition: attachment; filename=Makefile_dll
Content-Transfer-Encoding: base64
X-Attachment-Id: f_gcphfj3j1

aW5jbHVkZSBjb25maWcubWFrDQoNCkRJUlMgPSBpbnB1dCBsaWJhZiBsaWJhbzIgbGliYXNzIGxp
YmR2ZGNzcyBsaWJkdmRuYXYgbGliZHZkbmF2L3ZtIGxpYmR2ZHJlYWQ0IGxpYmZhYWQyIGxpYm1w
Y29kZWNzIGxpYm1wZGVtdXggbGlibXBlZzIgbGlidm8gbG9hZGVyIGxvYWRlci9kbW8gbG9hZGVy
L2RzaG93IG1wM2xpYiBvc2RlcCBzdHJlYW0gc3RyZWFtL2ZyZWVzZHAgc3RyZWFtL2xpYnJ0c3Ag
c3RyZWFtL3JlYWxydHNwIHRyZW1vciB2aWRpeA0KQUxMX09CSlMgPSAkKGZvcmVhY2ggRElSLCAk
KERJUlMpLCAkKHdpbGRjYXJkICQoRElSKS8qLm8pKQ0KDQpNUExBWUVSX09CSlMgPSAkKHdpbGRj
YXJkICoubykNCg0KSU5ORVJfTElCUyA9IGxpYmF2Zm9ybWF0L2xpYmF2Zm9ybWF0LmEgbGliYXZj
b2RlYy9saWJhdmNvZGVjLmEgbGliYXZjb3JlL2xpYmF2Y29yZS5hIGxpYmF2dXRpbC9saWJhdnV0
aWwuYSBsaWJwb3N0cHJvYy9saWJwb3N0cHJvYy5hIGxpYnN3c2NhbGUvbGlic3dzY2FsZS5hDQoN
CiMgJChFWFRSQUxJQlMpIGNvbWUgZnJvbSBjb25maWcubWFrDQpPVEhFUl9MSUJTID0gJChFWFRS
QUxJQlMpDQoNCiMgJChFWFRSQUxJQlNfTVBMQVlFUikgY29tZSBmcm9tIGNvbmZpZy5tYWsNCkxJ
QlMgPSAkKEVYVFJBTElCU19NUExBWUVSKQ0KDQptcGxheWVyLmRsbCA6ICQoT0JKU19NUExBWUVS
KSAkKEFMTF9PQkpTKQ0KCWRsbHdyYXAgLS1vdXRwdXQtbGliPWxpYm1wbGF5ZXIuYSAtLWRsbG5h
bWU9JEAgLS1kcml2ZXItbmFtZT1nY2MgLS1leHBvcnQtYWxsLXN5bWJvbHMgJChNUExBWUVSX09C
SlMpICQoQUxMX09CSlMpICQoSU5ORVJfTElCUykgJChPVEhFUl9MSUJTKSAkKExJQlMp
--002215b040c61aa5de048d81e899
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
MPlayer-cygwin mailing list
[email protected]
https://lists.mplayerhq.hu/mailman/listinfo/mplayer-cygwin
--002215b040c61aa5de048d81e899--