xtool/contrib/mORMot/SQLite3/amalgamation/ReadMe.md

58 lines
1.9 KiB
Markdown

# SQLite3 Database Engine With Encryption
## Reference Only - Do Not Use
This source code is included as reference.
**You should not have to compile the SQLite3 c code by yourself.**
We supply and validate the proper static `.o` `.obj` files within our https://github/synopse repository, or directly from https://synopse.info/files/sqlite3fpc.7z (for FPC) or https://synopse.info/files/sqlite3obj.7z (for Delphi).
## How To Compile The SQlite3 Engine
1. Copy here the latest amalgamation files from https://www.sqlite.org/download.html
2. Run the `patch-and-compile.sh` script to patch main `sqlite3.c` and cross-compile it for FPC
3. Run `c*.bat` to generate the `sqlite3.o` and `sqlite3.obj` for Delphi Win32/Win64
4. Don't forget to tune the expected *SQLite3* version text in `SynSQLite3Static.pas`
## Cross-Compile
Scripts are supplied to cross-compile from Linux to other systems.
It will use either the cross-compiler as installed by `fpcupdeluxe` or you should manually add some packages.
Here are some instructions for Debian/Ubuntu.
### Cross-Compile to Linux i386 from Linux x86_64
Install the following package:
sudo apt install libc6-dev:i386
granted the following has been run beforehand:
dpkg --add-architecture i386
You may also try the `gcc-multilib` package as alternative.
### Cross-Compile To Win32 And Win64
Install the following package:
sudo apt install mingw-w64
### Cross-Compile to Darwin / Linux ARM/AARCH64
Ensure you installed the latest version of the corresponding cross-compilers in `fpcupdeluxe` (in the *Cross* tab), and modify the `*.sh` path if necessary, from its default value:
CROSS=/home/ab/fpcup/cross/bin/$ARCH
## Acknowledgment
Our c wrapper is a cut-down, deeply adapted, version from https://github.com/utelle/SQLite3MultipleCiphers to use our `SynCrypto` unit and ensure compatibily with *bcc32/bcc64* Embarcadero compilers.
Original MIT License - (c) 2006-2020 Ulrich Telle