JCH = gcjh -jni
# Compile flags
-CXXFLAGS += `top_builddir=../.. ../../vlc-config --cflags` -I../../ -I ../../include ${JINCLUDES}
-LDFLAGS += -L../../lib -lvlc_pic -fPIC `top_builddir=../.. ../../vlc-config --libs builtin pic`
+CXXFLAGS += `top_builddir=../.. ../../vlc-config --cflags pic` -I../../ -I ../../include ${JINCLUDES}
+LDFLAGS += -L../../lib -lvlc_pic `top_builddir=../.. ../../vlc-config --libs builtin vlc pic`
# Build targets
all: libjvlc.so VlcClient
-# FIXME: -ldbus-1 and -lhal are UGLY
-# Problem is vlc-config --libs builtin does not output what is needed to build
-# vlc. We need to clean up vlc-config first
libjvlc.so: vlc-glue-jni.o vlc-graphics-jni.o
- $(CXX) -ldbus-1 -lhal -shared vlc-glue-jni.o vlc-graphics-jni.o $(LIBJINCLUDES) ${LDFLAGS} -o libjvlc.so
+ $(CXX) -shared vlc-glue-jni.o vlc-graphics-jni.o $(LIBJINCLUDES) ${LDFLAGS} -o libjvlc.so
vlc-graphics-jni.o: VlcClient
$(CXX) -c vlc-graphics-jni.cc $(CXXFLAGS)
fi
includes="${includes}"
cppflags="${includes}"
-libs="-L@libdir@"
module=""
linkage="c"
#
while test $# -gt 0; do
case "$1" in
- -*=*) optarg=`echo "$1" | sed 's/-_a-zA-Z0-9*=//'` ;;
+ -*=*) optarg=`echo "$1" | sed 's/-[_a-zA-Z0-9\-]*=//'` ;;
*) optarg= ;;
esac
;;
external)
echo_external=yes
- ldflags="${ldflags} -lvlc"
+ if test "x${echo_pic}" = "xno"
+ then
+ ldflags="${ldflags} -lvlc"
+ else
+ ldflags="${ldflags} -lvlc_pic"
+ fi
;;
*)
module="$1"
shift
done
+libs="-L@libdir@"
+
#
# If a module was requested, use its name
#
if test "${echo_objcflags}" = yes; then
echo "${cppflags} ${objcflags}"
fi
+
+# Libs
+# There are 4 possibilities
+# - We are a plugin or a builtin
+# - We are building from the outside (external):
+# - Give full libvlc linkflags + -lvlc(_pic) (in libdir)
+# - Link with builtins in libdir
+# - We are building something from the inside (builtin)
+# - Link with builtins in place
+# If you want something shared from the inside (binding),
+# you need "builtin vlc pic"
if test "${echo_libs}" = yes; then
if test "${echo_builtin}" = yes; then
for module in `echo "${builtins}"`; do