bldr 1.0.0
This commit is contained in:
parent
5f22f33d9c
commit
ab928521f1
89
tools/README.bldr
Normal file
89
tools/README.bldr
Normal file
@ -0,0 +1,89 @@
|
|||||||
|
+------+
|
||||||
|
| bldr |
|
||||||
|
+------+
|
||||||
|
|
||||||
|
bldr is a program that builds binary packages from an Everest package. It is intened for system image development.
|
||||||
|
|
||||||
|
bldr is compatible with Everest packages. That being said, it's only recommended to build packages designated as bldr compatible.
|
||||||
|
|
||||||
|
+--------------+
|
||||||
|
| Installation |
|
||||||
|
+--------------+
|
||||||
|
|
||||||
|
Copy bldr to a convenient location:
|
||||||
|
|
||||||
|
(user)$ cp bldr PROJECT_DIR
|
||||||
|
|
||||||
|
Then, copy bldr.conf to either of the following locations:
|
||||||
|
|
||||||
|
/etc/bldr.conf
|
||||||
|
$HOME/.config/bldr.conf
|
||||||
|
PROJECT_DIR/bldr.conf
|
||||||
|
|
||||||
|
+-------+
|
||||||
|
| Usage |
|
||||||
|
+-------+
|
||||||
|
|
||||||
|
bldr [-h] [-v] [-b] PACKAGE
|
||||||
|
|
||||||
|
+-------------------+
|
||||||
|
| Building packages |
|
||||||
|
+-------------------+
|
||||||
|
|
||||||
|
(user)$ ./bldr -b /path/to/package
|
||||||
|
|
||||||
|
It is important to provide the full path.
|
||||||
|
|
||||||
|
bldr will compile the package, and install it to $BLDR_OUT_DIR/pkgs/PACKAGE_NAME.
|
||||||
|
|
||||||
|
$BLDR_OUT_DIR can be defined in bldr.conf.
|
||||||
|
|
||||||
|
After a package has been compiled, you can either import the package-agnostic installation script,
|
||||||
|
or write your own.
|
||||||
|
|
||||||
|
+---------------------------+
|
||||||
|
| Writing packages for bldr |
|
||||||
|
+---------------------------+
|
||||||
|
|
||||||
|
Everest packages only require slight modification in order to be compatible with bldr.
|
||||||
|
|
||||||
|
First, ensure the getsource() function looks similar to this:
|
||||||
|
|
||||||
|
getsource() {
|
||||||
|
command1
|
||||||
|
command2
|
||||||
|
cd ${SOURCES[1]}
|
||||||
|
}
|
||||||
|
|
||||||
|
The last command in this function is very important. It MUST be "cd ${SOURCES[1]}", otherwise
|
||||||
|
bldr will throw an error when a user attempts to build.
|
||||||
|
|
||||||
|
It is safe to assume most people using bldr will be cross compiling packages.
|
||||||
|
In this case, ensure the toolchain is being used. Toolchains will always be located
|
||||||
|
in $BLDR_OUT_DIR/toolchain.
|
||||||
|
|
||||||
|
When configuring a package for compilation, ensure the target triplet matches the
|
||||||
|
desired system profile. In the case of "x86-musl":
|
||||||
|
|
||||||
|
TARGET="x86_64-linux-musl"
|
||||||
|
|
||||||
|
ALWAYS install bldr packages to $BLDR_OUT_DIR/pkgs/PACKAGE_NAME
|
||||||
|
bldr packages must not support system functions.
|
||||||
|
|
||||||
|
+-----------+
|
||||||
|
| Copyright |
|
||||||
|
+-----------+
|
||||||
|
|
||||||
|
(C) 2023 Everest Linux
|
||||||
|
This program is free software: you can redistribute it and/or modify it
|
||||||
|
under the terms of the GNU General Public License as published by the
|
||||||
|
Free Software Foundation, either version 3 of the License, or (at your option)
|
||||||
|
any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
See the GNU General Public License for more details.
|
||||||
|
You should have received a copy of the GNU General Public License along with
|
||||||
|
this program.
|
||||||
|
If not, see <https://www.gnu.org/licenses/>.
|
23
tools/bldr
23
tools/bldr
@ -22,16 +22,27 @@ usage_small() {
|
|||||||
load_config() {
|
load_config() {
|
||||||
if [ -f "/etc/bldr.conf" ]; then
|
if [ -f "/etc/bldr.conf" ]; then
|
||||||
source /etc/bldr.conf
|
source /etc/bldr.conf
|
||||||
elif [ -f "${HOME}/.config/bldr.conf"]; then
|
elif [ -f "${HOME}/.config/bldr.conf" ]; then
|
||||||
source ${HOME}/.config/bldr.conf
|
source ${HOME}/.config/bldr.conf
|
||||||
elif [ -f "$(pwd)/bldr.conf" ]; then
|
elif [ -f "$(pwd)/bldr.conf" ]; then
|
||||||
source $(pwd)/bldr.conf
|
source $(pwd)/bldr.conf
|
||||||
else
|
else
|
||||||
printf "No valid bldr.conf found\n"
|
printf "No valid bldr.conf found\n"
|
||||||
printf "Valid files are:\n"
|
printf "Valid files are:\n"
|
||||||
printf "/etc/bldr.conf"
|
printf "/etc/bldr.conf\n"
|
||||||
printf "${HOME}/.config/bldr.conf"
|
printf "${HOME}/.config/bldr.conf\n"
|
||||||
printf "$(pwd)/bldr.conf"
|
printf "$(pwd)/bldr.conf\n"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
check_for_toolchain() {
|
||||||
|
if [ -d "${TOOLCHAIN_PATH}" ]; then
|
||||||
|
printf "Toolchain found, adding to temporary PATH...\n"
|
||||||
|
PATH=${PATH}:${TOOLCHAIN_PATH}/bin
|
||||||
|
else
|
||||||
|
printf "Toolchain not found. Use the following command to download:\n"
|
||||||
|
printf "curl -O -J https://musl.cc/$(uname -m)-linux-musl-cross.tgz\n"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
@ -79,6 +90,10 @@ case $1 in
|
|||||||
;;
|
;;
|
||||||
-b|--build)
|
-b|--build)
|
||||||
load_config "$@"
|
load_config "$@"
|
||||||
|
check_for_toolchain "$@"
|
||||||
|
if [ "$?" != 0 ]; then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
shift
|
shift
|
||||||
check_if_input_is_blank "$@"
|
check_if_input_is_blank "$@"
|
||||||
mkdir /tmp/bldr-workspace
|
mkdir /tmp/bldr-workspace
|
||||||
|
@ -10,6 +10,9 @@ export CFLAGS="-O2 -fstack-protector-strong -static -pie"
|
|||||||
export CXXFLAGS="${CFLAGS}"
|
export CXXFLAGS="${CFLAGS}"
|
||||||
export LDFLAGS="-static"
|
export LDFLAGS="-static"
|
||||||
|
|
||||||
|
# Path to Everest toolchain
|
||||||
|
export TOOLCHAIN_PATH="/home/arco/Projects/x86_64-linux-musl-toolchain"
|
||||||
|
|
||||||
#
|
#
|
||||||
# end bldr.conf
|
# end bldr.conf
|
||||||
#
|
#
|
||||||
|
Loading…
Reference in New Issue
Block a user