vlc/vlc-config.in.in

340 lines
7.8 KiB
Bash

#!/bin/sh
prefix="@prefix@"
exec_prefix="@exec_prefix@"
exec_prefix_set=no
datarootdir="@datarootdir@"
release="@release@"
debug="@debug@"
gprof="@gprof@"
cprof="@cprof@"
optim="@optim@"
plugins="@PLUGINS@ "
builtins="@BUILTINS@ "
cppflags=""
cflags=""
cxxflags=""
objcflags=""
ldflags=""
cflags_tuning="@CFLAGS_TUNING@"
cflags_optim_size="@CFLAGS_OPTIM_SIZE@"
cflags_optim_speed="@CFLAGS_OPTIM_SPEED@"
cflags_optim_nodebug="@CFLAGS_OPTIM_NODEBUG@"
cflags_nooptim="@CFLAGS_NOOPTIM@"
#
# Do not touch below this place unless you really know what you are doing
#
usage()
{
cat << BLAH
Usage: vlc-config OPTIONS MODULES
Options:
[--prefix[=DIR]] set prefix
[--exec-prefix[=DIR]] set exec prefix
[--version] print version and exit
[--linkage] print linkage mode (c, c++, objc)
[--target] print targets and exit
[--list] print modules names and exit
[--libs] output linking flags
[--cflags] output C compilation flags
[--cxxflags] output C++ compilation flags
[--objcflags] output Objective C compilation flags
Modules:
vlc the main VLC object
plugin flags for plugin modules
builtin flags for built-in modules
pic flags for PIC code
MODULE any available module (dummy, gtk, avi, etc.)
BLAH
exit $1
}
register_flags()
{
case "$1" in
#@1@#
*)
;;
esac
}
register_targets()
{
case "$1" in
#@2@#
*)
;;
esac
}
if test $# -eq 0; then
usage 1 1>&2
fi
#
# No need to include the default @*FLAGS@ values here because they are
# automatically added when using $(COMPILE), $(CXXCOMPILE) or $(OBJCCOMPILE)
#
if test "@includedir@" != "/usr/include"; then
includes="-I@includedir@"
fi
if test "${top_builddir}" != ""; then
top_builddir="${top_builddir}/"
elif test "${TOP_BUILDDIR}" != ""; then
top_builddir="${TOP_BUILDDIR}/"
fi
includes="${includes}"
cppflags="${includes}"
module=""
linkage="c"
#
# On Linux and Solaris, activate 64-bit off_t (by default under BSD)
#
cppflags="${cppflags} -D_FILE_OFFSET_BITS=64 -D__USE_UNIX98 -D_LARGEFILE64_SOURCE -D_REENTRANT -D_THREAD_SAFE"
#
# Gettext, data and plugin location
#
cppflags="${cppflags} -DLOCALEDIR=\"@datadir@/locale\""
cppflags="${cppflags} -DDATA_PATH=\"@datadir@/vlc\""
cppflags="${cppflags} -DPLUGIN_PATH=\"@libdir@/vlc\""
#
# Various additional defines
#
if [ "${debug}" = yes ]; then
cppflags="${cppflags} -DDEBUG"
cflags="${cflags} -g"
cxxflags="${cxxflags} -g"
objcflags="${objcflags} -g"
ldflags="${ldflags} -g"
fi
if [ "${cprof}" = yes ]; then
cppflags="${cppflags} -DCPROF"
cflags="${cflags} -finstrument-functions"
cxxflags="${cxxflags} -finstrument-functions"
objcflags="${objcflags} -finstrument-functions"
fi
if [ "${gprof}" = yes ]; then
cppflags="${cppflags} -DGPROF"
cflags="${cflags} -pg"
cxxflags="${cxxflags} -pg"
objcflags="${objcflags} -pg"
ldflags="${ldflags} -pg"
fi
if [ "${release}" = yes ]; then
cppflags="${cppflags} -DHAVE_RELEASE"
fi
if [ "${optim}" = size ]; then
cppflags="${cppflags} ${cflags_optim_size} ${cflags_tuning}"
if [ "${debug}" != yes -a "${gprof}" != yes -a "${cprof}" != yes ]; then
cppflags="${cppflags} ${cflags_optim_nodebug}"
fi
elif [ "${optim}" = speed ]; then
cppflags="${cppflags} ${cflags_optim_speed} ${cflags_tuning}"
if [ "${debug}" != yes -a "${gprof}" != yes -a "${cprof}" != yes ]; then
cppflags="${cppflags} ${cflags_optim_nodebug}"
fi
else
cppflags="${cppflags} ${cflags_nooptim}"
fi
#
# The main argument loop
#
while test $# -gt 0; do
case "$1" in
-*=*) optarg=`echo "$1" | sed 's/-[_a-zA-Z0-9\-]*=//'` ;;
*) optarg= ;;
esac
case "$1" in
--prefix=*)
prefix="${optarg}"
if test "${exec_prefix_set}" = no ; then
exec_prefix="${optarg}"
fi
;;
--prefix)
echo_prefix=yes
;;
--exec-prefix=*)
exec_prefix="${optarg}"
exec_prefix_set=yes
;;
--exec-prefix)
echo_exec_prefix=yes
;;
--version)
echo "@VERSION@"
exit 0
;;
--linkage)
echo_linkage=yes
;;
--target)
echo_target=yes
;;
--list)
echo_list=yes
;;
--cflags)
echo_cflags=yes
;;
--cxxflags)
echo_cxxflags=yes
;;
--objcflags)
echo_objcflags=yes
;;
--libs)
echo_libs=yes
;;
-*)
usage 1 1>&1
;;
libvlc)
cppflags="${cppflags} -D__LIBVLC__ -I${top_builddir}src/misc"
;;
plugin)
echo_plugin=yes
cppflags="${cppflags} -D__LIBVLC__ -D__PLUGIN__"
;;
builtin)
echo_builtin=yes
cppflags="${cppflags} -D__LIBVLC__ -D__BUILTIN__"
;;
pic)
;;
mozilla)
;;
external)
echo_external=yes
ldflags="${ldflags} -lvlc -lvlc-control"
;;
*)
module="$1"
;;
esac
# Register per-module *FLAGS
register_flags "$1"
# Register module targets
register_targets "$1"
shift
done
libs="-L@libdir@"
#
# If a module was requested, use its name
#
if test -n "${module}"; then
cppflags="${cppflags} -DMODULE_NAME=${module} -DMODULE_NAME_IS_${module}"
fi
#
# Output what we were asked
#
if test "${echo_linkage}" = yes; then
if test "${echo_plugin}" = yes; then
for module in `echo "${plugins}"`; do
register_flags "${module}"
done
fi
if test "${echo_builtin}" = yes; then
for module in `echo "${builtins}"`; do
register_flags "${module}"
done
fi
echo "${linkage}"
exit 0
fi
if test "${echo_target}" = yes; then
if test "${echo_plugin}" = yes; then
for module in `echo "${plugins}"`; do
register_targets "${module}"
done
for target in `echo "${list}"`; do printf "${top_builddir}modules/${target}_plugin "; done
printf '\n'
fi
if test "${echo_builtin}" = yes; then
for module in `echo "${builtins}"`; do
register_targets "${module}"
done
for target in `echo "${list}"`; do printf "${top_builddir}modules/${target}.a "; done
printf '\n'
fi
exit 0
fi
if test "${echo_list}" = yes; then
if test "${echo_plugin}" = yes; then
echo "${plugins}"
printf '\n'
fi
if test "${echo_builtin}" = yes; then
echo "${builtins}"
printf '\n'
fi
exit 0
fi
if test "${echo_prefix}" = yes; then
echo "${prefix}"
fi
if test "${echo_exec_prefix}" = yes; then
echo "${exec_prefix}"
fi
if test "${echo_cppflags}" = yes; then
echo "${cppflags}"
fi
if test "${echo_cflags}" = yes; then
echo "${cppflags} ${cflags}"
fi
if test "${echo_cxxflags}" = yes; then
echo "${cppflags} ${cxxflags}"
fi
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 (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"
if test "${echo_libs}" = yes; then
if test "${echo_builtin}" = yes; then
for module in `echo "${builtins}"`; do
register_targets "${module}"
register_flags "${module}"
done
for target in `echo "${list}"`; do printf "${top_builddir}modules/${target}.a "; done
fi
if test "${echo_external}" = yes; then
for module in `echo "${builtins}"`; do
ldflags="${ldflags} @libdir@/vlc/lib${module}.a"
done
for module in `echo "${builtins}"`; do
register_flags "${module}"
done
register_flags "vlc"
fi
echo "${libs} ${ldflags}"
fi