xref: /aosp_15_r20/external/protobuf/post_process_dist.sh (revision 1b3f573f81763fcece89efc2b6a5209149e44ab8)
1*1b3f573fSAndroid Build Coastguard Worker#! /bin/sh
2*1b3f573fSAndroid Build Coastguard Worker
3*1b3f573fSAndroid Build Coastguard Worker# This script takes the result of "make dist" and:
4*1b3f573fSAndroid Build Coastguard Worker# 1) Unpacks it.
5*1b3f573fSAndroid Build Coastguard Worker# 2) Ensures all contents are user-writable.  Some version control systems
6*1b3f573fSAndroid Build Coastguard Worker#    keep code read-only until you explicitly ask to edit it, and the normal
7*1b3f573fSAndroid Build Coastguard Worker#    "make dist" process does not correct for this, so the result is that
8*1b3f573fSAndroid Build Coastguard Worker#    the entire dist is still marked read-only when unpacked, which is
9*1b3f573fSAndroid Build Coastguard Worker#    annoying.  So, we fix it.
10*1b3f573fSAndroid Build Coastguard Worker# 3) Convert MSVC project files to MSVC 2005, so that anyone who has version
11*1b3f573fSAndroid Build Coastguard Worker#    2005 *or* 2008 can open them.  (In version control, we keep things in
12*1b3f573fSAndroid Build Coastguard Worker#    MSVC 2008 format since that's what we use in development.)
13*1b3f573fSAndroid Build Coastguard Worker# 4) Uses the result to create .tar.gz, .tar.bz2, and .zip versions and
14*1b3f573fSAndroid Build Coastguard Worker#    deposits them in the "dist" directory.  In the .zip version, all
15*1b3f573fSAndroid Build Coastguard Worker#    non-testdata .txt files are converted to Windows-style line endings.
16*1b3f573fSAndroid Build Coastguard Worker# 5) Cleans up after itself.
17*1b3f573fSAndroid Build Coastguard Worker
18*1b3f573fSAndroid Build Coastguard Workerif [ "$1" == "" ]; then
19*1b3f573fSAndroid Build Coastguard Worker  echo "USAGE:  $0 DISTFILE" >&2
20*1b3f573fSAndroid Build Coastguard Worker  exit 1
21*1b3f573fSAndroid Build Coastguard Workerfi
22*1b3f573fSAndroid Build Coastguard Worker
23*1b3f573fSAndroid Build Coastguard Workerif [ ! -e $1 ]; then
24*1b3f573fSAndroid Build Coastguard Worker  echo $1": File not found." >&2
25*1b3f573fSAndroid Build Coastguard Worker  exit 1
26*1b3f573fSAndroid Build Coastguard Workerfi
27*1b3f573fSAndroid Build Coastguard Worker
28*1b3f573fSAndroid Build Coastguard Workerset -ex
29*1b3f573fSAndroid Build Coastguard Worker
30*1b3f573fSAndroid Build Coastguard WorkerLANGUAGES="cpp csharp java objectivec python ruby php all"
31*1b3f573fSAndroid Build Coastguard WorkerBASENAME=`basename $1 .tar.gz`
32*1b3f573fSAndroid Build Coastguard WorkerVERSION=${BASENAME:9}
33*1b3f573fSAndroid Build Coastguard Worker
34*1b3f573fSAndroid Build Coastguard Worker# Create a directory called "dist", copy the tarball there and unpack it.
35*1b3f573fSAndroid Build Coastguard Workermkdir dist
36*1b3f573fSAndroid Build Coastguard Workercp $1 dist
37*1b3f573fSAndroid Build Coastguard Workercd dist
38*1b3f573fSAndroid Build Coastguard Workertar zxvf $BASENAME.tar.gz
39*1b3f573fSAndroid Build Coastguard Workerrm $BASENAME.tar.gz
40*1b3f573fSAndroid Build Coastguard Worker
41*1b3f573fSAndroid Build Coastguard Worker# Set the entire contents to be user-writable.
42*1b3f573fSAndroid Build Coastguard Workerchmod -R u+w $BASENAME
43*1b3f573fSAndroid Build Coastguard Workercd $BASENAME
44*1b3f573fSAndroid Build Coastguard Worker
45*1b3f573fSAndroid Build Coastguard Workerfor LANG in $LANGUAGES; do
46*1b3f573fSAndroid Build Coastguard Worker  # Build the dist again in .tar.gz
47*1b3f573fSAndroid Build Coastguard Worker  ./configure DIST_LANG=$LANG
48*1b3f573fSAndroid Build Coastguard Worker  make dist-gzip
49*1b3f573fSAndroid Build Coastguard Worker  mv $BASENAME.tar.gz ../protobuf-$LANG-$VERSION.tar.gz
50*1b3f573fSAndroid Build Coastguard Workerdone
51*1b3f573fSAndroid Build Coastguard Worker
52*1b3f573fSAndroid Build Coastguard Worker# Convert all text files to use DOS-style line endings, then build a .zip
53*1b3f573fSAndroid Build Coastguard Worker# distribution.
54*1b3f573fSAndroid Build Coastguard Workertodos *.txt */*.txt
55*1b3f573fSAndroid Build Coastguard Worker
56*1b3f573fSAndroid Build Coastguard Workerfor LANG in $LANGUAGES; do
57*1b3f573fSAndroid Build Coastguard Worker  # Build the dist again in .zip
58*1b3f573fSAndroid Build Coastguard Worker  ./configure DIST_LANG=$LANG
59*1b3f573fSAndroid Build Coastguard Worker  make dist-zip
60*1b3f573fSAndroid Build Coastguard Worker  mv $BASENAME.zip ../protobuf-$LANG-$VERSION.zip
61*1b3f573fSAndroid Build Coastguard Workerdone
62*1b3f573fSAndroid Build Coastguard Worker
63*1b3f573fSAndroid Build Coastguard Workercd ..
64*1b3f573fSAndroid Build Coastguard Workerrm -rf $BASENAME
65