123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132 |
- #!/bin/bash
- [% c("var/set_default_env") -%]
- [% pc(c('var/compiler'), 'var/setup', { compiler_tarfile => c('input_files_by_name/' _ c('var/compiler')) }) %]
- distdir=/var/tmp/dist/sqlcipher
- builddir=/var/tmp/build/[% project %]
- mkdir /var/tmp/build
- tar -C /var/tmp/dist -xf [% c('input_files_by_name/nss') %]
- [% IF ! c("var/sqlcipher-linux-x86_64") -%]
- export AR="[% c('var/cross_prefix') %]-ar"
- # XXX: Mozilla really uses the NDK_API_VERSION here, which is weird.
- export CC="[% c('var/cross_prefix') %][% pc('android-toolchain', 'var/android_ndk_version') %]-clang"
- export CXX="[% c('var/cross_prefix') %][% pc('android-toolchain', 'var/android_ndk_version') %]-clang++"
- export LD="[% c('var/cross_prefix') %]-ld"
- export RANLIB="[% c('var/cross_prefix') %]-ranlib"
- host=""
- [% IF c("var/cross_prefix") == "armv7a-linux-androideabi" -%]
- host="arm-linux"
- [% ELSIF c("var/cross_prefix") == "i686-linux-android" -%]
- host="i686-linux"
- [% ELSIF c("var/cross_prefix") == "x86_64-linux-android" -%]
- host="x86_64-linux"
- [% ELSIF c("var/cross_prefix") == "aarch64-linux-android" -%]
- host="arm-linux"
- [% END -%]
- [% END -%]
- SQLCIPHER_CFLAGS=" \
- -DSQLITE_HAS_CODEC \
- -DSQLITE_SOUNDEX \
- -DHAVE_USLEEP=1 \
- -DSQLITE_MAX_VARIABLE_NUMBER=99999 \
- -DSQLITE_THREADSAFE=1 \
- -DSQLITE_DEFAULT_JOURNAL_SIZE_LIMIT=1048576 \
- -DNDEBUG=1 \
- -DSQLITE_ENABLE_MEMORY_MANAGEMENT=1 \
- -DSQLITE_ENABLE_LOAD_EXTENSION \
- -DSQLITE_ENABLE_COLUMN_METADATA \
- -DSQLITE_ENABLE_UNLOCK_NOTIFY \
- -DSQLITE_ENABLE_RTREE \
- -DSQLITE_ENABLE_STAT3 \
- -DSQLITE_ENABLE_STAT4 \
- -DSQLITE_ENABLE_JSON1 \
- -DSQLITE_ENABLE_FTS3_PARENTHESIS \
- -DSQLITE_ENABLE_FTS4 \
- -DSQLITE_ENABLE_FTS5 \
- -DSQLCIPHER_CRYPTO_NSS \
- -DSQLITE_ENABLE_DBSTAT_VTAB \
- -DSQLITE_SECURE_DELETE \
- -DSQLITE_DEFAULT_PAGE_SIZE=32768 \
- -DSQLITE_MAX_DEFAULT_PAGE_SIZE=32768 \
- -I/var/tmp/dist/nss/include \
- "
- LIBS="\
- -lcertdb \
- -lcerthi \
- -lcryptohi \
- -lfreebl_static \
- -lnspr4 \
- -lnss_static \
- -lnssb \
- -lnssdev \
- -lnsspki \
- -lnssutil \
- -lpk11wrap_static \
- -lplc4 \
- -lplds4 \
- -lsoftokn_static \
- "
- [% IF c("var/sqlcipher-linux-x86_64") -%]
- LIBS="${LIBS} -lintel-gcm-wrap_c_lib -lintel-gcm-s_lib"
- [% ELSE -%]
- [% IF c("var/cross_prefix") == "i686-linux-android" || c("var/cross_prefix") == "x86_64-linux-android"-%]
- LIBS="${LIBS} -lgcm-aes-x86_c_lib"
- [% END %]
- [% IF c("var/cross_prefix") == "armv7a-linux-android" || c("var/cross_prefix") == "aarch64-linux-android"-%]
- LIBS="${LIBS} -larmv8_c_lib"
- [% END %]
- [% IF c("var/cross_prefix") == "aarch64-linux-android" -%]
- LIBS="${LIBS} -lgcm-aes-aarch64_c_lib"
- [% END %]
- [% IF c("var/cross_prefix") == "armv7a-linux-androideabi" -%]
- LIBS="${LIBS} -lgcm-aes-arm32-neon_c_lib"
- [% END %]
- [% IF c("var/cross_prefix") == "x86_64-linux-android"-%]
- LIBS="${LIBS} -lintel-gcm-wrap_c_lib -lintel-gcm-s_lib -lhw-acc-crypto-avx -lhw-acc-crypto-avx2"
- [% END %]
- [% END -%]
- tar -C /var/tmp/build -xf [% c('input_files_by_name/sqlcipher') %]
- mv /var/tmp/build/[% project %]-[% c('version') %] $builddir
- cd $builddir
- mkdir $builddir/build
- cd build
- ../configure \
- [% IF ! c("var/sqlcipher-linux-x86_64") -%]
- --host="$host" \
- [% END -%]
- --with-pic \
- --verbose \
- --disable-shared \
- --with-crypto-lib=none \
- --disable-tcl \
- --enable-tempstore=yes \
- CFLAGS="${SQLCIPHER_CFLAGS}" \
- LDFLAGS="-L/var/tmp/dist/nss/lib" \
- LIBS="${LIBS}[% IF ! c("var/sqlcipher-linux-x86_64") %] -llog -lm[% END %]"
- make sqlite3.h
- make sqlite3ext.h
- make libsqlcipher.la
- mkdir -p $distdir/include/sqlcipher
- mkdir -p $distdir/lib
- cp -p "$builddir/build/sqlite3.h" "$distdir/include/sqlcipher"
- cp -p "$builddir/build/sqlite3ext.h" "$distdir/include/sqlcipher"
- cp -p "$builddir/build/.libs/libsqlcipher.a" "$distdir/lib"
- # Just in case, ensure that the created binaries are not -w.
- chmod +w "$distdir/lib/libsqlcipher.a"
- cd /var/tmp/dist
- [% c('tar', {
- tar_src => [ project ],
- tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
- }) %]
|