Build the calibre installers, including all dependencies from scratch ======================================================================= This folder contains code to automate the process of building calibre, including all its dependencies, from scratch, for all platforms that calibre supports. In general, builds proceed in two steps: first build all the dependencies, then build the calibre installer itself. Requirements --------------- Building *must* run on a Linux computer. First create some empty top level directory and run the following commands:: git clone https://github.com/kovidgoyal/bypy.git git clone https://github.com/kovidgoyal/calibre.git cd calibre Now we need to bootstrap calibre, for which all its Linux build dependencies must have already been installed (see the `Dependencies `_ section of the Linux installation page for details). Once the dependencies are installed, run:: ./setup.py bootstrap All building is done inside QEMU VMs. Linux VMs are auto-created as needed, Windows and macOS VMs must be created manually. Instructions on creating the VMs are in the bypy repo under :file:`virtual_machine/README.rst`. Required software for the VMs is listed in :file:`bypy/windows.conf` and :file:`bypy/macos.conf`. Linux ------- To build the Intel and ARM dependencies for calibre, run:: ./setup.py build_dep linux ./setup.py build_dep linux-arm64 The output (after a very long time) will be in :literal:`bypy/b/linux/[32|64]` Now you can build the calibre Linux tarballs with:: ./setup.py linux The output will be in :file:`dist` macOS -------------- Name the QEMU VM using ``vm_name`` from :literal:`bypy/macos.conf`. Make sure all software mentioned in :file:`bypy/macos.conf` is installed. To build the dependencies for calibre, run:: ./setup.py build_dep macos The output (after a very long time) will be in :literal:`bypy/b/macos`. Now you can build the calibre ``.dmg`` with:: ./setup.py osx --dont-sign --dont-notarize The output will be in :file:`dist` Windows ------------- Name the QEMU VM using ``vm_name`` from :file:`bypy/windows.conf`. Make sure all software mentioned in :file:`bypy/windows.conf` is installed. To build the dependencies for calibre, run:: ./setup.py build_dep windows The output (after a very long time) will be in :literal:`bypy/b/windows/64`. Now you can build the calibre Windows installers with:: ./setup.py win64 --dont-sign The output will be in :file:`dist`