xref: /aosp_15_r20/external/libaom/update_libaom.sh (revision 77c1e3ccc04c968bd2bc212e87364f250e820521)
1*77c1e3ccSAndroid Build Coastguard Worker#!/bin/bash -e
2*77c1e3ccSAndroid Build Coastguard Worker#
3*77c1e3ccSAndroid Build Coastguard Worker# Copyright (c) 2012 The Chromium Authors. All rights reserved.
4*77c1e3ccSAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license that can be
5*77c1e3ccSAndroid Build Coastguard Worker# found in the LICENSE file.
6*77c1e3ccSAndroid Build Coastguard Worker
7*77c1e3ccSAndroid Build Coastguard Worker# This tool is used to update libaom source code to a revision of the upstream
8*77c1e3ccSAndroid Build Coastguard Worker# repository. Modified from Chromium src/third_party/libvpx/update_libvpx.sh
9*77c1e3ccSAndroid Build Coastguard Worker
10*77c1e3ccSAndroid Build Coastguard Worker# Usage:
11*77c1e3ccSAndroid Build Coastguard Worker#
12*77c1e3ccSAndroid Build Coastguard Worker# $ ./update_libaom.sh [branch | revision | file or url containing a revision]
13*77c1e3ccSAndroid Build Coastguard Worker# When specifying a branch it may be necessary to prefix with origin/
14*77c1e3ccSAndroid Build Coastguard Worker
15*77c1e3ccSAndroid Build Coastguard Worker# Tools required for running this tool:
16*77c1e3ccSAndroid Build Coastguard Worker#
17*77c1e3ccSAndroid Build Coastguard Worker# 1. Linux / Mac
18*77c1e3ccSAndroid Build Coastguard Worker# 2. git
19*77c1e3ccSAndroid Build Coastguard Worker
20*77c1e3ccSAndroid Build Coastguard Workerexport LC_ALL=C
21*77c1e3ccSAndroid Build Coastguard Worker
22*77c1e3ccSAndroid Build Coastguard Workerdie() {
23*77c1e3ccSAndroid Build Coastguard Worker  echo "$@"
24*77c1e3ccSAndroid Build Coastguard Worker  exit 1
25*77c1e3ccSAndroid Build Coastguard Worker}
26*77c1e3ccSAndroid Build Coastguard Worker
27*77c1e3ccSAndroid Build Coastguard Workercleanup() {
28*77c1e3ccSAndroid Build Coastguard Worker  git remote remove $REMOTE 2>/dev/null
29*77c1e3ccSAndroid Build Coastguard Worker}
30*77c1e3ccSAndroid Build Coastguard Worker
31*77c1e3ccSAndroid Build Coastguard Worker# Location for the remote git repository.
32*77c1e3ccSAndroid Build Coastguard WorkerGIT_REPO="https://aomedia.googlesource.com/aom"
33*77c1e3ccSAndroid Build Coastguard Worker
34*77c1e3ccSAndroid Build Coastguard Worker# Update to TOT by default.
35*77c1e3ccSAndroid Build Coastguard WorkerGIT_BRANCH="main"
36*77c1e3ccSAndroid Build Coastguard Worker
37*77c1e3ccSAndroid Build Coastguard WorkerBASE_DIR=`pwd`
38*77c1e3ccSAndroid Build Coastguard Worker
39*77c1e3ccSAndroid Build Coastguard Workerif [ -n "$1" ]; then
40*77c1e3ccSAndroid Build Coastguard Worker  GIT_BRANCH="$1"
41*77c1e3ccSAndroid Build Coastguard Worker  if [ -f "$1"  ]; then
42*77c1e3ccSAndroid Build Coastguard Worker    GIT_BRANCH=$(<"$1")
43*77c1e3ccSAndroid Build Coastguard Worker  elif [[ $1 = http* ]]; then
44*77c1e3ccSAndroid Build Coastguard Worker    GIT_BRANCH=`curl $1`
45*77c1e3ccSAndroid Build Coastguard Worker  fi
46*77c1e3ccSAndroid Build Coastguard Workerfi
47*77c1e3ccSAndroid Build Coastguard Worker
48*77c1e3ccSAndroid Build Coastguard Workerprev_hash="$(egrep "^Commit: [[:alnum:]]" README.android | awk '{ print $2 }')"
49*77c1e3ccSAndroid Build Coastguard Workerecho "prev_hash:$prev_hash"
50*77c1e3ccSAndroid Build Coastguard Worker
51*77c1e3ccSAndroid Build Coastguard WorkerREMOTE="update_upstream"
52*77c1e3ccSAndroid Build Coastguard Worker
53*77c1e3ccSAndroid Build Coastguard Workertrap cleanup EXIT
54*77c1e3ccSAndroid Build Coastguard Worker
55*77c1e3ccSAndroid Build Coastguard Worker# Add a remote for upstream git repository
56*77c1e3ccSAndroid Build Coastguard Workergit remote add $REMOTE $GIT_REPO
57*77c1e3ccSAndroid Build Coastguard Worker
58*77c1e3ccSAndroid Build Coastguard Worker# Fetch remote's GIT_BRANCH
59*77c1e3ccSAndroid Build Coastguard Workergit fetch $REMOTE $GIT_BRANCH --tags
60*77c1e3ccSAndroid Build Coastguard Worker
61*77c1e3ccSAndroid Build Coastguard Worker# Get commit id corresponding to branch/revision in upstream repository
62*77c1e3ccSAndroid Build Coastguard WorkerREMOTE_BRANCHES="$(git remote show $REMOTE)"
63*77c1e3ccSAndroid Build Coastguard Worker
64*77c1e3ccSAndroid Build Coastguard Workerif [[ "$REMOTE_BRANCHES" == *"$GIT_BRANCH"* ]]; then
65*77c1e3ccSAndroid Build Coastguard Worker  UPSTREAM_COMMIT=$(git rev-list -n 1 $REMOTE/$GIT_BRANCH)
66*77c1e3ccSAndroid Build Coastguard Workerelse
67*77c1e3ccSAndroid Build Coastguard Worker  UPSTREAM_COMMIT=$(git rev-list -n 1 $GIT_BRANCH)
68*77c1e3ccSAndroid Build Coastguard Workerfi
69*77c1e3ccSAndroid Build Coastguard Worker
70*77c1e3ccSAndroid Build Coastguard Worker[ -z "$UPSTREAM_COMMIT" ] \
71*77c1e3ccSAndroid Build Coastguard Worker  && die "Unable to get upstream commit corresponding to ${GIT_BRANCH}";
72*77c1e3ccSAndroid Build Coastguard Worker
73*77c1e3ccSAndroid Build Coastguard Worker# Defer the commit until after updating METADATA & README.android.
74*77c1e3ccSAndroid Build Coastguard Workergit merge --no-commit $UPSTREAM_COMMIT
75*77c1e3ccSAndroid Build Coastguard Worker
76*77c1e3ccSAndroid Build Coastguard Worker# Get the current commit hash.
77*77c1e3ccSAndroid Build Coastguard Workerhash=$(git log $UPSTREAM_COMMIT -1 --format="%H")
78*77c1e3ccSAndroid Build Coastguard Worker
79*77c1e3ccSAndroid Build Coastguard Worker# Update date and commit info in METADATA & README.android.
80*77c1e3ccSAndroid Build Coastguard Workersed -E -i'' \
81*77c1e3ccSAndroid Build Coastguard Worker  -e "s/^([[:space:]]+year:).*/\1 $(date +'%Y')/" \
82*77c1e3ccSAndroid Build Coastguard Worker  -e "s/^([[:space:]]+month:).*/\1 $(date +'%-m')/" \
83*77c1e3ccSAndroid Build Coastguard Worker  -e "s/^([[:space:]]+day:).*/\1 $(date +'%-d')/" \
84*77c1e3ccSAndroid Build Coastguard Worker  METADATA
85*77c1e3ccSAndroid Build Coastguard Workersed -E -i'' \
86*77c1e3ccSAndroid Build Coastguard Worker  -e "s/^(Date:).*/\1 $(date +'%A %B %d %Y')/" \
87*77c1e3ccSAndroid Build Coastguard Worker  -e "s/^(Branch:).*/\1 $GIT_BRANCH/" \
88*77c1e3ccSAndroid Build Coastguard Worker  -e "s/^(Commit:).*/\1 $hash/" \
89*77c1e3ccSAndroid Build Coastguard Worker  README.android
90*77c1e3ccSAndroid Build Coastguard Worker
91*77c1e3ccSAndroid Build Coastguard Workergit commit -a -v
92*77c1e3ccSAndroid Build Coastguard Worker
93*77c1e3ccSAndroid Build Coastguard Workerecho "Update the version field in README.android and METADATA."
94*77c1e3ccSAndroid Build Coastguard Worker
95*77c1e3ccSAndroid Build Coastguard Workerchmod 755 build/cmake/*.pl
96