summaryrefslogtreecommitdiff
path: root/doc/note/setup/build-sqlite.txt
blob: 81210f90bf4cf32d8106c2662a1a067b504252fb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77

### Debian native
true \
  && PKGS_TO_ADD="curl ca-certificates gcc libc6-dev make tcl" \
  && SUDO=sudo \
  && PKGINIT="$SUDO apt update" \
  && PKGADD="$SUDO apt install -y --no-install-recommends" \
  && PKGCLEAN="$SUDO apt clean" \
  && HOST= \
  && true


### Alpine mingw cross
true \
  && PKGS_TO_ADD="curl gcc musl-dev make mingw-w64-gcc tar tcl" \
  && SUDO="/home/$USER/.local/bin/sudo" \
  && PKGINIT=true \
  && PKGADD="$SUDO apk add" \
  && PKGCLEAN="$SUDO apk clean" \
  && HOST=x86_64-w64-mingw32 \
  && true


## Generic
true \
  && SQLITE_VERSION="3.33.0" \
  && CACHE_DIR="/var/tmp" \
  && true


## Make
true \
  && SQLITE_URL="https://github.com/sqlite/sqlite/archive/refs/tags/version-${SQLITE_VERSION:?}.tar.gz" \
  && SQLITE_SRCTGZ="${CACHE_DIR:?}/sqlite-${SQLITE_VERSION:?}.tgz" \
  && SQLITE_BINTGZ="${SQLITE_SRCTGZ%.*}-bin.tgz" \
  && ${PKGINIT:?} && ${PKGADD:?} ${PKGS_TO_ADD} \
  && if test -n "$HOST"; then HOST_="${HOST:?}-" ;fi \
  && if test ! -e "${SQLITE_SRCTGZ:?}"; then (true \
     && echo "Download \"${SQLITE_URL:?}\"" \
     && curl -sSLo "${SQLITE_SRCTGZ:?}" "${SQLITE_URL:?}" \
     );fi \
  && if test ! -e "${SQLITE_BINTGZ:?}"; then (true \
     && printf '\n  Build SqLite\n\n' \
     && tar xzf "${SQLITE_SRCTGZ:?}" \
     && cd sqlite-*${SQLITE_VERSION:?} \
     && mkdir build \
     && if echo $HOST|grep -q 'mingw'; then true \
        && ./configure --prefix=${PWD:?}/build --host=${HOST:?} \
          CC=${HOST_}cc CPP=$CPP CXX=$CXX BCC=gcc BEXE=.exe config_TARGET_EXEEXT=.exe \
        && ln -s mksourceid.exe mksourceid \
        && make clean && make -j$(nproc) && make install \
        && (cd build \
           && rm -rf lemon* mksourceid lib/pkgconfig lib/*.la \
           ) \
        ;else true \
        && ./configure --prefix=${PWD:?}/build \
        && make clean && make -j$(nproc) && make install \
        ;fi \
     && cp README.md LICENSE.md VERSION build/. \
     && (cd build \
        && rm -rf lib/libsqlite3.la lib/pkgconfig \
        && find -not -name MD5SUM -type f -exec md5sum -b {} + > MD5SUM \
        && tar --owner=0 --group=0 -czf "${SQLITE_BINTGZ:?}" * \
        && md5sum -b "${SQLITE_BINTGZ:?}" > "${SQLITE_BINTGZ:?}.md5" \
        ) \
     && cd .. && rm -rf sqlite-*${SQLITE_VERSION:?} \
     );fi \
  && printf '\n  DONE\n\n'


## Install
true \
  && $SUDO tar -C "${INSTALL_ROOT:?}" -xzf "${SQLITE_BINTGZ:?}" \
  && true