[vlc-devel] VLC Java bindings (Makefile errors)

Tony Anecito adanecito at yahoo.com
Fri Oct 12 19:34:29 CEST 2007


Hi Anderson,

I did find the reason for the error. It seems the
target is not being called for creating the
libjvlc.def.
I tried seeing what it takes to fix it and ran into
some very interesting issues that make me wonder how
the make ever worked in the past. There have been
quite a few changes so not sure what happened.

I have been able to figure out (maybe, I could be
wrong)

The following line from the Makefile has several
issues:
libjvlc.dll.a libjvlc.def:
	$(DLLTOOL) -z libjvlc.def -l libjvlc.dll.a -D $<
$(libjvlc_a_OBJECTS)

   1. -D option for dlltool should have a dll name
after it.
   2. libjvlc_a_OBJECTS never is created with values
or object file names.

After fixing those problems it creates a libjvlc.def
file with Exports but without a LIBRARY name even
though I specified I get some really odd values for
the first line such as:

; dlltool -z libjvlc.def -l libjvlc.dll.a -D jvlc.dll
./.libs/libjvlc_la-audio-jni.o
./.libs/libjvlc_la-core-jni.o
./.libs/libjvlc_la-graphics-jni.o
./.libs/libjvlc_la-input-jni.o
./.libs/libjvlc_la-playlist-jni.o
./.libs/libjvlc_la-utils.o
./.libs/libjvlc_la-video-jni.o
./.libs/libjvlc_la-vlm-jni.o
./.libs/libjvlc_la-callback-jni.o
EXPORTS
	Java_org_videolan_jvlc_Video__1toggleFullscreen at 8 @ 1
	Java_org_videolan_jvlc_Audio__1getMute at 8 @ 2
	Java_org_videolan_jvlc_Audio__1getTrack at 8 @ 3
	Java_org_videolan_jvlc_Audio__1getVolume at 8 @ 4


Then I get a make error later:

g++ -mno-cygwin -mms-bitfields -o jvlc.dll.exe
-Wl,--kill-at ./libjvlc.def -shar
ed -Wl,--exclude-libs -Wl,libunicows.a 
-L/usr/win32/lib ../../../src/.libs/libv
lc.dll.a -LC:/java/jdk1.6.0_02/lib -ljawt
-L/usr/local/lib -lunicows -lkernel32
-lws2_32 -lnetapi32 -lwinmm /usr/win32/lib/libintl.a
/usr/win32/lib/libiconv.a

Cannot export
Java_org_videolan_jvlc_Audio__1getChannel at 8: symbol
not defined
Cannot export
Java_org_videolan_jvlc_Audio__1getMute at 8: symbol not
defined
Cannot export
Java_org_videolan_jvlc_Audio__1getTrack at 8: symbol not
defined
Cannot export
Java_org_videolan_jvlc_Audio__1getVolume at 8: symbol not
defined



So I made some progress but I am sure months ago when
I was last able to do a build I was able to create a
jvlc.dll using cygwin.

I also discovered if you do two makes in a row the
second will fail for the java bindings because the
plo's in the .deps directory needs to be reset back to
what configure.sh sets them up to be AND the .lo, .o
in the java bindings needs to be deleted. This was a
odd issue I found many months ago but could not get an
answer till late last night/early morning. It seems a
plo reset and cleanup target needs to get called that
is not getting called each time you run a make.

My conclusion so far (from the analysis above) is
there was a change done by the jvlc developers that
broke the build. I believe now that Cygwin is not at
fault. The fixes I did so far seem to indicate dlltool
is not being used correctly.

Hopefully littlejohn or courmisch can comment on where
I am wrong or what to do next.

Regards,
-Tony



--- Anderson Luiz Brunozi <abrunozi at cpqd.com.br>
wrote:

> Hello,
> 
> I was trying to compile vlc with java bindings on
> cygwin, but I am getting an error (see below).
> I found on the list archives that there was some
> changes that broke these java bindings. Has this
> issue already been solved?
> 
> 
> Here is the error I get:
> 
> /bin/sh ../../../libtool --tag=CXX   --mode=link g++
> -mno-cygwin  -mms-bitfields
>    -L/usr/win32/lib -o jvlc.dll  -Wl,--kill-at \
>                         ./libjvlc.def \
>                         ../../../src/libvlc.dll.a
> -shared ../../../src/libvlc.dl
> l.a -L/java/lib -ljawt \
>                                
> `top_builddir="../../.." ../../../vlc-config --l
> ibs libvlc` -L/usr/win32/lib -lintl -L/usr/win32/lib
> -liconv
> g++ -mno-cygwin -mms-bitfields -o jvlc.dll
> -Wl,--kill-at ./libjvlc.def -shared -
> Wl,--exclude-libs -Wl,libunicows.a  -L/usr/win32/lib
> ../../../src/libvlc.dll.a -
> L/java/lib -ljawt -L/usr/local/lib -lunicows
> -lkernel32 -lws2_32 -lnetapi32 -lwi
> nmm /usr/win32/lib/libintl.a
> /usr/win32/lib/libiconv.a
> g++: ./libjvlc.def: No such file or directory
> g++: ../../../src/libvlc.dll.a: No such file or
> directory
> make[4]: *** [jvlc.dll] Error 1
> make[4]: Leaving directory
> `/cygdrive/c/work/vlc_svn/trunk/bindings/java/src'
> make[3]: *** [all-recursive] Error 1
> make[3]: Leaving directory
> `/cygdrive/c/work/vlc_svn/trunk/bindings/java'
> make[2]: *** [all-recursive] Error 1
> make[2]: Leaving directory
> `/cygdrive/c/work/vlc_svn/trunk/bindings'
> make[1]: *** [all-recursive] Error 1
> make[1]: Leaving directory
> `/cygdrive/c/work/vlc_svn/trunk'
> make: *** [all] Error 2
> 
> 
> 
> 
> 
> Thanks,
> 
> Anderson Luiz Brunozi
> 
> 
> 
> 
> _______________________________________________
> vlc-devel mailing list
> To unsubscribe or modify your subscription options:
> http://mailman.videolan.org/listinfo/vlc-devel
> 



       
____________________________________________________________________________________
Boardwalk for $500? In 2007? Ha! Play Monopoly Here and Now (it's updated for today's economy) at Yahoo! Games.
http://get.games.yahoo.com/proddesc?gamekey=monopolyherenow  



More information about the vlc-devel mailing list