xref: /sqlite-3.40.0/tool/mkautoconfamal.sh (revision 96e3c39b)
1#!/bin/sh
2# This script is used to build the amalgamation autoconf package.
3# It assumes the following:
4#
5#   1. The files "sqlite3.c", "sqlite3.h", "sqlite3ext.h", "shell.c",
6#      and "sqlite3rc.h" are available in the current directory.
7#
8#   2. Variable $TOP is set to the full path of the root directory
9#      of the SQLite source tree.
10#
11#   3. There is nothing of value in the ./mkpkg_tmp_dir directory.
12#      This is important, as the script executes "rm -rf ./mkpkg_tmp_dir".
13#
14
15
16# Bail out of the script if any command returns a non-zero exit
17# status. Or if the script tries to use an unset variable. These
18# may fail for old /bin/sh interpreters.
19#
20set -e
21set -u
22
23TMPSPACE=./mkpkg_tmp_dir
24VERSION=`cat $TOP/VERSION`
25HASH=`sed 's/^\(..........\).*/\1/' $TOP/manifest.uuid`
26DATETIME=`grep '^D' $TOP/manifest | sed -e 's/[^0-9]//g' -e 's/\(............\).*/\1/'`
27
28# If this script is given an argument of --snapshot, then generate a
29# snapshot tarball named for the current checkout SHA1 hash, rather than
30# the version number.
31#
32if test "$#" -ge 1 -a x$1 != x--snapshot
33then
34  # Set global variable $ARTIFACT to the "3xxyyzz" string incorporated
35  # into artifact filenames. And $VERSION2 to the "3.x.y[.z]" form.
36  xx=`echo $VERSION|sed 's/3\.\([0-9]*\)\..*/\1/'`
37  yy=`echo $VERSION|sed 's/3\.[^.]*\.\([0-9]*\).*/\1/'`
38  zz=0
39  set +e
40    zz=`echo $VERSION|sed 's/3\.[^.]*\.[^.]*\.\([0-9]*\).*/\1/'|grep -v '\.'`
41  set -e
42  TARBALLNAME=`printf "sqlite-autoconf-3%.2d%.2d%.2d" $xx $yy $zz`
43else
44  TARBALLNAME=sqlite-snapshot-$DATETIME
45fi
46
47rm -rf $TMPSPACE
48cp -R $TOP/autoconf       $TMPSPACE
49cp sqlite3.c              $TMPSPACE
50cp sqlite3.h              $TMPSPACE
51cp sqlite3ext.h           $TMPSPACE
52cp sqlite3rc.h            $TMPSPACE
53cp $TOP/sqlite3.1         $TMPSPACE
54cp $TOP/sqlite3.pc.in     $TMPSPACE
55cp shell.c                $TMPSPACE
56cp $TOP/src/sqlite3.rc    $TMPSPACE
57cp $TOP/tool/Replace.cs   $TMPSPACE
58
59cat $TMPSPACE/configure.ac |
60sed "s/--SQLITE-VERSION--/$VERSION/" > $TMPSPACE/tmp
61mv $TMPSPACE/tmp $TMPSPACE/configure.ac
62
63cd $TMPSPACE
64autoreconf -i
65#libtoolize
66#aclocal
67#autoconf
68#automake --add-missing
69
70mkdir -p tea/generic
71echo "#ifdef USE_SYSTEM_SQLITE"      > tea/generic/tclsqlite3.c
72echo "# include <sqlite3.h>"        >> tea/generic/tclsqlite3.c
73echo "#else"                        >> tea/generic/tclsqlite3.c
74echo "#include \"sqlite3.c\""       >> tea/generic/tclsqlite3.c
75echo "#endif"                       >> tea/generic/tclsqlite3.c
76cat  $TOP/src/tclsqlite.c           >> tea/generic/tclsqlite3.c
77
78cat tea/configure.ac |
79  sed "s/AC_INIT(\[sqlite\], .*)/AC_INIT([sqlite], [$VERSION])/" > tmp
80mv tmp tea/configure.ac
81
82cd tea
83autoconf
84rm -rf autom4te.cache
85
86cd ../
87./configure && make dist
88tar -xzf sqlite-$VERSION.tar.gz
89mv sqlite-$VERSION $TARBALLNAME
90tar -czf $TARBALLNAME.tar.gz $TARBALLNAME
91mv $TARBALLNAME.tar.gz ..
92cd ..
93ls -l $TARBALLNAME.tar.gz
94