]> git.sesse.net Git - vlc/blob - bindings/java/Makefile.am
use libtool to compile java bindings. needs a cleanup (also thanks to megabug)
[vlc] / bindings / java / Makefile.am
1 #######################################################################
2 # VLC Java Bindings
3 #######################################################################
4
5 #SUBDIRS= src
6
7 DIST_SUBDIRS = src
8
9 EXTRA_DIST= \
10             FAQ \
11             TODO \
12             README \
13             THANKS \
14             javadoc.xml \
15             VlcClient.java \
16             VLCExample.java
17
18
19 EXTRA_DIST+= \
20         org/videolan/jvlc/AudioIntf.java \
21         org/videolan/jvlc/Audio.java \
22         org/videolan/jvlc/GenericVideoWidget.java \
23         org/videolan/jvlc/InputIntf.java \
24         org/videolan/jvlc/Input.java \
25         org/videolan/jvlc/JLibVLC.java \
26         org/videolan/jvlc/JVLCCanvas.java \
27         org/videolan/jvlc/JVLC.java \
28         org/videolan/jvlc/JVLCPanel.java \
29         org/videolan/jvlc/PlaylistIntf.java \
30         org/videolan/jvlc/Playlist.java \
31         org/videolan/jvlc/VideoIntf.java \
32         org/videolan/jvlc/Video.java \
33         org/videolan/jvlc/VLCException.java \
34         org/videolan/jvlc/VLMIntf.java \
35         org/videolan/jvlc/VLM.java 
36
37 if BUILD_JAVA
38
39 OBJECTS = org/videolan/jvlc/VLCException.class org/videolan/jvlc/Playlist.class org/videolan/jvlc/AudioIntf.class org/videolan/jvlc/Audio.class org/videolan/jvlc/InputIntf.class org/videolan/jvlc/Input.class org/videolan/jvlc/PlaylistIntf.class org/videolan/jvlc/VideoIntf.class org/videolan/jvlc/Video.class org/videolan/jvlc/JLibVLC.class org/videolan/jvlc/JVLC.class org/videolan/jvlc/JVLCCanvas.class org/videolan/jvlc/JVLCPanel.class org/videolan/jvlc/VLMIntf.class org/videolan/jvlc/VLM.class  org/videolan/jvlc/GenericVideoWidget.class
40
41 OBJECTS_HEADER = src/../includes/VLCException.h src/../includes/Playlist.h src/../includes/AudioIntf.h src/../includes/Audio.h src/../includes/InputIntf.h src/../includes/Input.h src/../includes/PlaylistIntf.h src/../includes/VideoIntf.h src/../includes/Video.h src/../includes/JLibVLC.h src/../includes/JVLC.h src/../includes/JVLCCanvas.h src/../includes/JVLCPanel.h src/../includes/VLMIntf.h src/../includes/VLM.h  src/../includes/GenericVideoWidget.h
42
43 COBJECTS = src/utils.o src/video-jni.o src/audio-jni.o src/input-jni.o src/playlist-jni.o src/vlm-jni.o src/core-jni.o src/graphics-jni.o
44
45 PROCESSOR_FAMILY = `uname -m | sed -e 's/^i.86/i386/' | sed -e 's/^x86_64/amd64/'`
46
47 if HAVE_WIN32
48 JINCLUDES = -I${JAVA_HOME}/include -I${JAVA_HOME}/include/win32
49 LIBJINCLUDES = -L${JAVA_HOME}/lib -ljawt
50 JCH = javah
51 else
52 JINCLUDES = -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/linux
53 LIBJINCLUDES = -L$(JAVA_HOME)/jre/lib/$(PROCESSOR_FAMILY) -ljawt
54 JCH = gcjh -jni
55 endif
56
57
58 if USE_LIBTOOL
59 jvlcdir = $(libdir)
60 jvlc_LTLIBRARIES = libjvlc.la
61 libjvlc_la_SOURCES = \
62         src/audio-jni.cc \
63         src/core-jni.cc \
64         src/graphics-jni.cc \
65         src/input-jni.cc \
66         src/playlist-jni.cc \
67         src/utils.cc \
68         src/utils.h \
69         src/video-jni.cc \
70         src/vlm-jni.cc
71
72 libjvlc_la_LIBADD = ../../src/libvlc-control.la $(LIBJINCLUDES)
73
74 if HAVE_WIN32
75 libjvlc_la_JAVACXXFLAGS = `top_builddir=../.. ../../vlc-config --cflags pic` -I../../ -I ../../include $(JINCLUDES)
76 libjvlc_la_JAVALDFLAGS = -mno-cygwin -L../../src -L../../src/.libs -lvlc-control `top_builddir=../.. ../../vlc-config --libs builtin vlc pic external` -Wl,--kill-at
77 else
78 libjvlc_la_JAVACXXFLAGS = `top_builddir=../.. ../../vlc-config --cflags pic` -I../../ -I ../../include $(JINCLUDES)
79 libjvlc_la_JAVALDFLAGS = -L../../src -L../../src/.libs  -lvlc-control `top_builddir=../.. ../../vlc-config --libs builtin vlc pic external`
80 endif
81
82 else
83
84 if HAVE_WIN32
85 JAVACXXFLAGS = `top_builddir=../.. ../../vlc-config --cflags pic` -I../../ -I ../../include $(JINCLUDES)
86 JAVALDFLAGS = -mno-cygwin -L../../src -L../../src/.libs -lvlc-control `top_builddir=../.. ../../vlc-config --libs builtin vlc pic external` -Wl,--kill-at
87 else
88 JAVACXXFLAGS = `top_builddir=../.. ../../vlc-config --cflags pic` -I../../ -I ../../include $(JINCLUDES)
89 JAVALDFLAGS = -L../../src -L../../src/.libs  -lvlc-control `top_builddir=../.. ../../vlc-config --libs builtin vlc pic external`
90 endif
91
92 endif
93
94 export JINCLUDES
95
96 # Build targets
97 all: VlcClient VLCExample
98
99 if HAVE_WIN32
100 libjvlc.so: $(OBJECTS)
101         $(MAKE) -C src
102         $(CXX) -shared $(COBJECTS) $(LIBJINCLUDES) $(LDFLAGS) $(JAVALDFLAGS) -o jvlc.dll
103 else
104 libjvlc.so: $(OBJECTS)  
105         $(MAKE) -C src
106         $(CXX) -shared $(COBJECTS) $(LIBJINCLUDES) $(LDFLAGS) $(JAVALDFLAGS) -o libjvlc.so
107 endif
108
109 VlcClient: $(OBJECTS)
110         $(JAVAC) VlcClient.java
111
112 VLCExample: $(OBJECTS)
113         $(JAVAC) VLCExample.java
114
115 if HAVE_WIN32
116 %.class: %.java 
117         $(JAVAC) $? 
118         $(JCH) org.videolan.jvlc.$(*F)
119 else
120 %.class: %.java
121         $(JAVAC) $?
122         $(JCH) $(@D)/$(*F) -o includes/$(*F).h
123 endif
124
125 $(OBJECTS_HEADER): $(OBJECTS)
126
127 clean-local:
128         rm -f *.class *~ org/videolan/jvlc/*.class org_videolan*.h includes/*.h src/*.o *.so *.o *.dll
129
130 endif