Blame media/libopus/update.sh

Packit f0b94e
#!/bin/sh
Packit f0b94e
# This Source Code Form is subject to the terms of the Mozilla Public
Packit f0b94e
# License, v. 2.0. If a copy of the MPL was not distributed with this
Packit f0b94e
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
Packit f0b94e
Packit f0b94e
#
Packit f0b94e
# Usage: ./update.sh <opus_src_directory>
Packit f0b94e
#
Packit f0b94e
# Copies the needed files from a directory containing the original
Packit f0b94e
# libopus source, and applies any local patches we're carrying.
Packit f0b94e
Packit f0b94e
TARGET='.'
Packit f0b94e
Packit f0b94e
STATIC_FILES="COPYING celt/arm/arm2gnu.pl"
Packit f0b94e
MK_FILES="opus_sources.mk celt_sources.mk silk_sources.mk \
Packit f0b94e
          opus_headers.mk celt_headers.mk silk_headers.mk"
Packit f0b94e
Packit f0b94e
# Make sure we have a source directory
Packit f0b94e
if test -z $1 || ! test -r $1/include/opus.h; then
Packit f0b94e
  echo "Update the current directory from a source checkout"
Packit f0b94e
  echo "usage: $0 ../opus"
Packit f0b94e
  exit 1
Packit f0b94e
fi
Packit f0b94e
Packit f0b94e
# "parse" the makefile fragments to get the list of source files
Packit f0b94e
# requires GNU sed extensions
Packit f0b94e
SRC_FILES=$(sed -e ':a;N;$!ba;s/#[^\n]*\(\n\)/\1/g;s/\\\n//g;s/[A-Z0-9_]*[ \t]*=[ \t]*//g' \
Packit f0b94e
             $(for file in ${MK_FILES}; do echo "$1/${file}"; done))
Packit f0b94e
Packit f0b94e
# pre-release versions of the code don't list opus_custom.h
Packit f0b94e
# in celt_headers.mk, so we must include it manually
Packit f0b94e
HDR_FILES="include/opus_custom.h"
Packit f0b94e
Packit f0b94e
# make sure the necessary subdirectories exist
Packit f0b94e
for file in ${SRC_FILES}; do
Packit f0b94e
  base=${file##*/}
Packit f0b94e
  dir="${file%"${base}"}"
Packit f0b94e
  if test ! -d "${TARGET}/${dir}"; then
Packit f0b94e
    cmd="mkdir -p ${TARGET}/${dir}"
Packit f0b94e
    echo ${cmd}
Packit f0b94e
    ${cmd}
Packit f0b94e
  fi
Packit f0b94e
done
Packit f0b94e
 
Packit f0b94e
# copy files into the target directory
Packit f0b94e
for file in ${STATIC_FILES} ${SRC_FILES} ${HDR_FILES}; do
Packit f0b94e
  cmd="cp $1/${file} ${TARGET}/${file}"
Packit f0b94e
  echo ${cmd}
Packit f0b94e
  ${cmd}
Packit f0b94e
done
Packit f0b94e
Packit f0b94e
sed \
Packit f0b94e
 -e s/@OPUS_ARM_MAY_HAVE_EDSP@/1/g \
Packit f0b94e
 -e s/@OPUS_ARM_MAY_HAVE_MEDIA@/1/g \
Packit f0b94e
 -e s/@OPUS_ARM_MAY_HAVE_NEON@/1/g \
Packit f0b94e
 $1/celt/arm/armopts.s.in > ${TARGET}/celt/arm/armopts.s
Packit f0b94e
Packit f0b94e
# query git for the revision we're copying from
Packit f0b94e
if test -d $1/.git; then
Packit f0b94e
  version=$(cd $1 && git describe --tags --match 'v*' --dirty)
Packit f0b94e
else
Packit f0b94e
  version="UNKNOWN"
Packit f0b94e
fi
Packit f0b94e
echo "copied from revision ${version}"
Packit f0b94e
# update README revision
Packit f0b94e
sed -e "s/^The git tag\/revision used was .*/The git tag\/revision used was ${version}./" \
Packit f0b94e
    ${TARGET}/README_MOZILLA > ${TARGET}/README_MOZILLA+ && \
Packit f0b94e
    mv ${TARGET}/README_MOZILLA+ ${TARGET}/README_MOZILLA
Packit f0b94e
# update compiled-in version string
Packit f0b94e
sed -e "s/DEFINES\['OPUS_VERSION'\][ \t]*=[ \t]*'\".*\"'/DEFINES['OPUS_VERSION'] = '\"${version}-mozilla\"'/" \
Packit f0b94e
    ${TARGET}/moz.build > ${TARGET}/moz.build+ && \
Packit f0b94e
    mv ${TARGET}/moz.build+ ${TARGET}/moz.build
Packit f0b94e
Packit f0b94e
python gen-sources.py $1
Packit f0b94e
Packit f0b94e
# apply outstanding local patches
Packit f0b94e
patch -p3 < nonunified.patch