sfdk-make-install
Install software built with Salesforce DX toolbelt
TLDR
Run make-install section of RPM SPEC file
SYNOPSIS
sfdk-make-install [MAKE_TARGETS_AND_OPTIONS...]
PARAMETERS
MAKE_TARGETS_AND_OPTIONS...
Any arguments passed to sfdk-make-install are typically forwarded directly to the underlying make command. This allows developers to specify custom build targets (e.g., all, clean, install, debug, release) or pass specific make options (e.g., -jN for parallel compilation, V=1 for verbose output, --prefix=PATH to override installation paths if supported by the project's Makefile).
DESCRIPTION
The sfdk-make-install command is a specialized utility provided within the Sailfish OS Software Development Kit (SDK). It acts as a wrapper around standard build tools, primarily make and install, to streamline the compilation and installation process for applications and components targeting the Sailfish OS platform. This command is typically executed within the SDK's build environment, which handles cross-compilation and dependencies for the target architecture.
It automates the steps of invoking make to build the project and then performing an installation, usually into the SDK's target root filesystem or a designated staging area. This simplifies the development workflow by abstracting away the complexities of managing build flags and installation paths specific to the Sailfish OS build system. It is not a general-purpose Linux command and is designed exclusively for use within the Sailfish OS SDK context.
CAVEATS
The sfdk-make-install command is specific to the Sailfish OS SDK. It will not work without the SDK being properly installed and its environment sourced. It assumes the presence of a Makefile (or similar build system output like build.ninja) in the current working directory, which the command will use to build and install the project. Its behavior is entirely dependent on the project's own build system configuration.
TYPICAL WORKFLOW
Developers using the Sailfish OS SDK often navigate to their project directory (which contains a Makefile or the output of cmake/qmake), source the SDK environment, and then execute sfdk-make-install. For instance, sfdk-make-install without arguments often defaults to building and installing the project, similar to running make && make install. Developers might also use sfdk-make-install clean to clean the build directory or sfdk-make-install -j4 to speed up compilation on multi-core systems.
UNDERLYING MECHANISM
Behind the scenes, sfdk-make-install typically sets up the necessary environment variables for cross-compilation (e.g., compiler paths, flags for the target architecture), potentially chroots into a target rootfs, and then executes make with the provided arguments. The installation step often places files into the SDK's target root filesystem, preparing them for packaging (e.g., into an RPM file) or for testing on an emulator/device.
HISTORY
While specific historical development details of sfdk-make-install are not publicly documented, it likely emerged as a convenience script within the Sailfish OS SDK to simplify the common developer workflow of building and installing projects for the Sailfish OS target environment. Its design reflects the need to abstract complex cross-compilation and target-specific installation steps, allowing developers to use familiar make commands without needing to manually configure SDK paths or toolchains.