uhd/tools/package_source.sh
Steven Koo 1a8e654d69 uhd: Create shell script to replace CMake's package_source
This script replaces CMake's package_source implementation to allow
for pulling in the firmware, fpga, mpm, host, and tools folders.
This builds two tarballs, one with and one without the firmware,
fpga, and mpm folders.
2020-04-15 07:48:48 -05:00

108 lines
3.9 KiB
Bash
Executable file

#!/bin/sh
# Copyright 2020 Ettus Research, a National Instruments Brand
#
# SPDX-License-Identifier: GPL-3.0-or-later
#
# Shell script to generate uhd tar.gz packages.
# Builds 2 packages. One with the firmware, fpga, and mpm folders and one without
set -e
echo_help () {
echo "-h/--help: This help doc"
echo "-d/--dir /path/to/uhd/root: Point to custom path. Defaults to '../'"
echo "-n/--name Specifies package name. Required"
echo "-f/--fpganame Specifies fpga package name. If unspecified, '_fpga' gets appended to provided name"
}
while [[ $# -gt 0 ]]
do
key="$1"
case $key in
-h|--help)
echo_help
exit 0
;;
-d|--dir)
UHD_ROOTDIR="$2"
shift # past argument
shift # past value
;;
-n|--name)
UHD_TARNAME="$2"
shift # past argument
shift # past value
;;
-f|--fpganame)
UHD_TARFPGANAME="$2"
shift # past argument
shift # past value
;;
*) # unknown option
echo "Unknown argument"
exit 1
;;
esac
done
if [[ -z "$UHD_ROOTDIR" ]]; then
UHD_ROOTDIR='..'
fi
echo "Root Dir: "$UHD_ROOTDIR
if [[ -z "$UHD_TARNAME" ]]; then
echo_help
exit 1
fi
if [[ -z "$UHD_TARFPGANAME" ]]; then
UHD_TARFPGANAME="${UHD_TARNAME}_fpga"
fi
# Create working directory if it doesn't already exist otherwise clear it
if [ ! -d "$UHD_ROOTDIR/build/root" ]; then
mkdir -p $UHD_ROOTDIR/build/root
else
rm -r $UHD_ROOTDIR/build/root/*
fi
# Copy basic source and create tar.gz
cp -R $UHD_ROOTDIR/host $UHD_ROOTDIR/build/root
cp -R $UHD_ROOTDIR/images $UHD_ROOTDIR/build/root
cp -R $UHD_ROOTDIR/tools $UHD_ROOTDIR/build/root
find $UHD_ROOTDIR/build/root/ -type d -name "build*" -exec rm -r {} +
UHD_EXITSTATUS=0
echo "Building $UHD_ROOTDIR/build/$UHD_TARNAME.tar.bz2"
tar --exclude='.git*' -jcf $UHD_ROOTDIR/build/$UHD_TARNAME.tar.bz2 -C $UHD_ROOTDIR/build/root/ . || { echo "Could not create .tar.bz2 file -- Is bzip2 installed?"; UHD_EXITSTATUS=1; }
echo "Building $UHD_ROOTDIR/build/$UHD_TARNAME.tar.gz"
tar --exclude='.git*' -zcf $UHD_ROOTDIR/build/$UHD_TARNAME.tar.gz -C $UHD_ROOTDIR/build/root/ . || { echo "Could not create .tar.gz file -- Is gzip installed?"; UHD_EXITSTATUS=1; }
echo "Building $UHD_ROOTDIR/build/$UHD_TARNAME.tar.xz"
tar --exclude='.git*' -Jcf $UHD_ROOTDIR/build/$UHD_TARNAME.tar.xz -C $UHD_ROOTDIR/build/root/ . || { echo "Could not create .tar.xz file -- Is xz installed?"; UHD_EXITSTATUS=1; }
echo "Building $UHD_ROOTDIR/build/$UHD_TARNAME.tar.Z"
tar --exclude='.git*' -Zcf $UHD_ROOTDIR/build/$UHD_TARNAME.tar.Z -C $UHD_ROOTDIR/build/root/ . || { echo "Could not create .tar.Z file -- Is compress installed?"; UHD_EXITSTATUS=1; }
# Copy firmware, fpga, and mpm folders and create tar.gz
cp -R $UHD_ROOTDIR/firmware $UHD_ROOTDIR/build/root
cp -R $UHD_ROOTDIR/fpga $UHD_ROOTDIR/build/root
cp -R $UHD_ROOTDIR/mpm $UHD_ROOTDIR/build/root
find $UHD_ROOTDIR/build/root/ -type d -name "build*" -exec rm -r {} +
echo "Building $UHD_ROOTDIR/build/$UHD_TARFPGANAME.tar.bz2"
tar --exclude='.git*' -jcf $UHD_ROOTDIR/build/$UHD_TARFPGANAME.tar.bz2 -C $UHD_ROOTDIR/build/root/ . || { echo "Could not create .tar.bz2 file -- Is bzip2 installed?"; UHD_EXITSTATUS=1; }
echo "Building $UHD_ROOTDIR/build/$UHD_TARFPGANAME.tar.gz"
tar --exclude='.git*' -zcf $UHD_ROOTDIR/build/$UHD_TARFPGANAME.tar.gz -C $UHD_ROOTDIR/build/root/ . || { echo "Could not create .tar.gz file -- Is gzip installed?"; UHD_EXITSTATUS=1; }
echo "Building $UHD_ROOTDIR/build/$UHD_TARFPGANAME.tar.xz"
tar --exclude='.git*' -Jcf $UHD_ROOTDIR/build/$UHD_TARFPGANAME.tar.xz -C $UHD_ROOTDIR/build/root/ . || { echo "Could not create .tar.xz file -- Is xz installed?"; UHD_EXITSTATUS=1; }
echo "Building $UHD_ROOTDIR/build/$UHD_TARFPGANAME.tar.Z"
tar --exclude='.git*' -Zcf $UHD_ROOTDIR/build/$UHD_TARFPGANAME.tar.Z -C $UHD_ROOTDIR/build/root/ . || { echo "Could not create .tar.Z file -- Is compress installed?"; UHD_EXITSTATUS=1; }
exit $UHD_EXITSTATUS