mirror of
https://github.com/videolan/vlc.git
synced 2024-12-01 13:55:14 +08:00
575c056a1c
New VLC_EXPORTs are now added at the end of module_symbols_t so that offsets of other function pointers are preserved. Deleted VLC_EXPORTs are replaced with dummy pointers for padding. Of course, it doesn't solve the problem with changing shared structures format :/ and it may cause SVN conflicts when multiple people changes VLC_EXPORT. I doubt it can be avoided though.
320 lines
7.2 KiB
Bash
320 lines
7.2 KiB
Bash
#!/bin/sh
|
|
|
|
prefix="@prefix@"
|
|
exec_prefix="@exec_prefix@"
|
|
exec_prefix_set=no
|
|
|
|
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="@CFLAGS_OPTIM@"
|
|
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
|
|
[--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}"
|
|
libs="-L@libdir@"
|
|
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 -D_GNU_SOURCE"
|
|
|
|
#
|
|
# Gettext, data and plugin location
|
|
#
|
|
cppflags="${cppflags} -DLOCALEDIR=\"@datadir@/locale\""
|
|
cppflags="${cppflags} -DDATA_PATH=\"${prefix}/share/vlc\""
|
|
cppflags="${cppflags} -DPLUGIN_PATH=\"${prefix}/lib/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}" = yes ]; then
|
|
cppflags="${cppflags} ${cflags_optim} ${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
|
|
;;
|
|
--cflags)
|
|
echo_cflags=yes
|
|
;;
|
|
--cxxflags)
|
|
echo_cxxflags=yes
|
|
;;
|
|
--objcflags)
|
|
echo_objcflags=yes
|
|
;;
|
|
--libs)
|
|
echo_libs=yes
|
|
;;
|
|
-*)
|
|
usage 1 1>&1
|
|
;;
|
|
vlc)
|
|
cppflags="${cppflags} -D__VLC__ -I${top_builddir}src/misc"
|
|
;;
|
|
plugin)
|
|
echo_plugin=yes
|
|
cppflags="${cppflags} -D__VLC__ -D__PLUGIN__"
|
|
;;
|
|
pic)
|
|
echo_pic=yes
|
|
;;
|
|
builtin)
|
|
echo_builtin=yes
|
|
cppflags="${cppflags} -D__VLC__ -D__BUILTIN__"
|
|
;;
|
|
mozilla)
|
|
;;
|
|
external)
|
|
echo_external=yes
|
|
ldflags="${ldflags} -lvlc"
|
|
;;
|
|
*)
|
|
module="$1"
|
|
;;
|
|
esac
|
|
|
|
# Register per-module *FLAGS
|
|
register_flags "$1"
|
|
|
|
# Register module targets
|
|
register_targets "$1"
|
|
|
|
shift
|
|
done
|
|
|
|
#
|
|
# 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
|
|
if test "${echo_pic}" = yes; then
|
|
for target in `echo "${list}"`; do printf "${top_builddir}modules/${target}_pic.a "; done
|
|
else
|
|
for target in `echo "${list}"`; do printf "${top_builddir}modules/${target}.a "; done
|
|
fi
|
|
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
|
|
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
|
|
if test "${echo_pic}" = yes; then
|
|
for target in `echo "${list}"`; do printf "${top_builddir}modules/${target}_pic.a "; done
|
|
else
|
|
for target in `echo "${list}"`; do printf "${top_builddir}modules/${target}.a "; done
|
|
fi
|
|
fi
|
|
if test "${echo_external}" = yes; then
|
|
if test "${echo_pic}" = yes; then
|
|
for module in `echo "${builtins}"`; do
|
|
ldflags="${ldflags} @libdir@/vlc/lib${module}_pic.a"
|
|
done
|
|
else
|
|
for module in `echo "${builtins}"`; do
|
|
ldflags="${ldflags} @libdir@/vlc/lib${module}.a"
|
|
done
|
|
fi
|
|
for module in `echo "${builtins}"`; do
|
|
register_flags "${module}"
|
|
done
|
|
register_flags "vlc"
|
|
fi
|
|
echo "${libs} ${ldflags}"
|
|
fi
|