mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-13 21:01:14 +00:00
3c064affc1
Don't use AC_CONFIG_SUBDIRS to call the FFmpeg configure script, as it complains about all the unknown parameters autoconf gives it, and fiddling with ac_configure_args makes maintainer-mode call our real configure script with a bunch of bogus arguments. Instead, use AC_CONFIG_COMMANDS to call the FFmpeg configure script ourselves. Remove autogen.sh code that modifies the FFmpeg configure script, as it's not needed now that we only pass it arguments it understands, and move the detection of flags like --disable-ffmpeg into the configure script, otherwise they never get passed to FFmpeg if we call configure ourselves, such as from a tarball.
131 lines
3.8 KiB
Bash
Executable file
131 lines
3.8 KiB
Bash
Executable file
#!/bin/sh
|
|
# Run this to generate all the initial makefiles, etc.
|
|
|
|
DIE=0
|
|
package=gst-ffmpeg
|
|
srcfile=configure.ac
|
|
have_svn=`which svn`
|
|
# FFMPEG specific properties
|
|
. ./ffmpegrev
|
|
|
|
# make sure we have common
|
|
if test ! -f common/gst-autogen.sh;
|
|
then
|
|
echo "+ Setting up common submodule"
|
|
git submodule init
|
|
fi
|
|
git submodule update
|
|
|
|
if test -x $have_svn && [ $have_svn ];
|
|
then
|
|
if test ! -f $FFMPEG_CO_DIR/configure
|
|
then
|
|
# checkout ffmpeg from its repository
|
|
rm -rf $FFMPEG_CO_DIR
|
|
echo "+ getting ffmpeg from svn"
|
|
svn -r $FFMPEG_REVISION co $FFMPEG_SVN $FFMPEG_CO_DIR
|
|
echo "+ updating externals"
|
|
svn update -r $FFMPEG_EXTERNALS_REVISION $FFMPEG_CO_DIR/libswscale
|
|
else
|
|
# update ffmpeg from its repository
|
|
echo "+ updating ffmpeg checkout"
|
|
svn -r $FFMPEG_REVISION up $FFMPEG_CO_DIR
|
|
echo "+ updating externals"
|
|
svn update -r $FFMPEG_EXTERNALS_REVISION $FFMPEG_CO_DIR/libswscale
|
|
fi
|
|
else
|
|
echo "Subversion needed for ffmpeg checkout, please install and/or add to \$PATH"
|
|
exit 0
|
|
fi
|
|
|
|
# source helper functions
|
|
if test ! -f common/gst-autogen.sh;
|
|
then
|
|
echo There is something wrong with your source tree.
|
|
echo You are missing common/gst-autogen.sh
|
|
exit 1
|
|
fi
|
|
. common/gst-autogen.sh
|
|
|
|
# install pre-commit hook for doing clean commits
|
|
if test ! \( -x .git/hooks/pre-commit -a -L .git/hooks/pre-commit \);
|
|
then
|
|
rm -f .git/hooks/pre-commit
|
|
ln -s ../../common/hooks/pre-commit.hook .git/hooks/pre-commit
|
|
fi
|
|
|
|
autogen_options $@
|
|
|
|
echo -n "+ check for build tools"
|
|
if test ! -z "$NOCHECK"; then echo " skipped"; else echo; fi
|
|
version_check "autoconf" "$AUTOCONF autoconf autoconf-2.54 autoconf-2.53 autoconf-2.52" \
|
|
"ftp://ftp.gnu.org/pub/gnu/autoconf/" 2 52 || DIE=1
|
|
version_check "automake" "$AUTOMAKE automake automake-1.9 automake-1.7 automake-1.6 automake-1.5" \
|
|
"ftp://ftp.gnu.org/pub/gnu/automake/" 1 6 || DIE=1
|
|
version_check "libtoolize" "$LIBTOOLIZE libtoolize libtoolize14 glibtoolize" \
|
|
"ftp://ftp.gnu.org/pub/gnu/libtool/" 1 4 0 || DIE=1
|
|
version_check "pkg-config" "" \
|
|
"http://www.freedesktop.org/software/pkgconfig" 0 8 0 || DIE=1
|
|
|
|
die_check $DIE
|
|
|
|
autoconf_2_52d_check || DIE=1
|
|
aclocal_check || DIE=1
|
|
autoheader_check || DIE=1
|
|
|
|
die_check $DIE
|
|
|
|
# if no arguments specified then this will be printed
|
|
if test -z "$*"; then
|
|
echo "+ checking for autogen.sh options"
|
|
echo " This autogen script will automatically run ./configure as:"
|
|
echo " ./configure $CONFIGURE_DEF_OPT"
|
|
echo " To pass any additional options, please specify them on the $0"
|
|
echo " command line."
|
|
fi
|
|
|
|
toplevel_check $srcfile
|
|
|
|
tool_run "$aclocal" "-I common/m4 $ACLOCAL_FLAGS"
|
|
tool_run "$libtoolize" "--copy --force"
|
|
tool_run "$autoheader"
|
|
|
|
# touch the stamp-h.in build stamp so we don't re-run autoheader in maintainer mode -- wingo
|
|
echo timestamp > stamp-h.in 2> /dev/null
|
|
|
|
tool_run "$autoconf"
|
|
tool_run "$automake" "-a -c -Wno-portability"
|
|
|
|
# if enable exists, add an -enable option for each of the lines in that file
|
|
if test -f enable; then
|
|
for a in `cat enable`; do
|
|
CONFIGURE_FILE_OPT="--enable-$a"
|
|
done
|
|
fi
|
|
|
|
# if disable exists, add an -disable option for each of the lines in that file
|
|
if test -f disable; then
|
|
for a in `cat disable`; do
|
|
CONFIGURE_FILE_OPT="$CONFIGURE_FILE_OPT --disable-$a"
|
|
done
|
|
fi
|
|
|
|
test -n "$NOCONFIGURE" && {
|
|
echo "+ skipping configure stage for package $package, as requested."
|
|
echo "+ autogen.sh done."
|
|
exit 0
|
|
}
|
|
|
|
echo "+ running configure ... "
|
|
test ! -z "$CONFIGURE_DEF_OPT" && echo " ./configure default flags: $CONFIGURE_DEF_OPT"
|
|
test ! -z "$CONFIGURE_EXT_OPT" && echo " ./configure external flags: $CONFIGURE_EXT_OPT"
|
|
test ! -z "$CONFIGURE_FILE_OPT" && echo " ./configure enable/disable flags: $CONFIGURE_FILE_OPT"
|
|
echo
|
|
|
|
./configure $CONFIGURE_DEF_OPT $CONFIGURE_EXT_OPT $CONFIGURE_FILE_OPT || {
|
|
echo " configure failed"
|
|
exit 1
|
|
}
|
|
|
|
echo
|
|
echo "Now type 'make' to compile $package."
|