blob: 4df163df79d08110bc21e215903ba18fcc82de17 (
plain) (
tree)
|
|
#!/usr/bin/env bash
# -*- coding: utf-8 -*-
# shellcheck source=./rebash/core.sh
source "$(dirname "${BASH_SOURCE[0]}")/rebash/core.sh"
core.import logging
build_compile_qemu_xmount() {
local __doc__='
Compiles qemu libxmount.
NOTE: expects xmount installation under
$1/../xmount/trunk/build/release_build/
Provides the following file:
"$1/libxmount_input_qemu.so"
Example:
`build_compile_qemu_xmount /qemu_source /xmount/installation`
'
pushd "$1"
local xmount_installation="../xmount/trunk/build/release_build/usr"
[ ! -z "$2" ] && xmount_installation="$2"
./configure --enable-xmount-input --python="$(which python2)" \
--extra-cflags="-fPIC" \
--extra-cflags="-std=gnu99" \
--extra-cflags="-I${xmount_installation}/include" \
--extra-cflags="-I${xmount_installation}/include/xmount" \
--disable-fdt --target-list=""
make -j4 libxmount_input_qemu.so
local ret=$?
popd
return $ret
}
build_clean_qemu_xmount() {
local __doc__='Clean the build of `build_compile_qemu_xmount`.'
pushd "$1"
make clean
popd
return $?
}
build_compile_xmount() {
local __doc__='
Compiles xmount.
Provides the xmount installation under:
"$1/trunk/build/release_build/"
Example:
`build_compile_xmount /xmount_source /xmount_source/build /usr`
'
pushd "$1"
local destination_directory="./release_build"
[ ! -z "$2" ] && destination_directory="$2"
local install_prefix="/usr"
[ ! -z "$3" ] && install_prefix="$3"
mkdir --parents trunk/build
cd trunk/build || return 1
cmake -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX="$install_prefix" ..
make -j4
make install DESTDIR="$destination_directory"
local ret=$?
popd
return $ret
}
build_clean_xmount() {
local __doc__='Clean the build of `build_compile_xmount`.'
rm --recursive --force "$1/trunk/build"
}
build_compile_dnbd3() {
local __doc__='
Compiles dnbd3 kernel module and client.
Provides the following file:
"$1/build/dnbd3.ko"
"$1/build/dnbd3-client"
Examples:
`build_compile_dnbd3 path/to/dnbd3/source/`
Passing the kernel version to cmake:
`CMAKE_FLAGS="-DKERNEL_VERSION=4.14.6-openslx+" \
build_compile_dnbd3 path/to/dnbd3/source/`
'
pushd "$1"
# NOTE: The generic way would be: "./build.sh" but this tries to build
# more than we really need and takes more time.
mkdir --parents build
pushd build
# Inject CMAKE_FLAGS as a way to control how cmake is called,
# e.g. to pass the kernel version
cmake ${CMAKE_FLAGS} ../
make -j4 dnbd3 dnbd3-client
popd
return $?
}
build_clean_dnbd3() {
local __doc__='Clean the build of `build_compile_dnbd3`.'
rm --recursive --force "$1/build"
return $?
}
build_compile_systemd_preserve_process_marker() {
local __doc__='
Compiles simple c program.
Examples:
`build_compile_systemd_preserve_process_marker path/to/program/folder`
'
pushd "$1"
make
popd
return $?
}
build_clean_systemd_preserve_process_marker() {
local __doc__='
Clean the build of
`build_compile_systemd_preserve_process_marker`.
'
pushd "$1"
make clean
popd
return $?
}
# region vim modline
# vim: set tabstop=4 shiftwidth=4 expandtab:
# vim: foldmethod=marker foldmarker=region,endregion:
# endregion
|