130 lines
5.8 KiB
Bash
Executable File
130 lines
5.8 KiB
Bash
Executable File
#!/bin/bash
|
|
#########################################################################################################
|
|
## Copyright (c) 2019-2026 Philip Smart <info@eaw.app>
|
|
## Licensed under the GNU General Public License v3. See LICENSE-SOFTWARE.txt.
|
|
#########################################################################################################
|
|
|
|
export PICO_PATH=/dvlp/Projects/pico/
|
|
export PICO_SDK_PATH=${PICO_PATH}/pico-sdk/
|
|
export PICO_SDK_EXAMPLE_PATH=${PICO_PATH}/pico-examples/
|
|
export PICO_SDK_PROJECTS_PATH=${PICO_PATH}/projects/
|
|
export PICO_SDK_PROJECTS_PATH_PICO=${PICO_PATH}/projects/tzpuPico
|
|
export PICO_SDK_PROJECTS_PATH_PICOESP32=${PICO_PATH}/projects/tzpuPico/esp32
|
|
export NAS_DST=/srv2/build/
|
|
|
|
echo "****************************************************************************"
|
|
echo "* Building tzpuPico $1 "
|
|
echo "****************************************************************************"
|
|
echo ""
|
|
|
|
#echo "Reverting tiny_usb..."
|
|
#cd $PICO_SDK_PATH/lib/
|
|
#rm -fr tinyusb
|
|
#cp -pr tinyusb.orig tinyusb
|
|
|
|
OLDVERSION=$(cat ${PICO_SDK_PROJECTS_PATH_PICO}/version.txt)
|
|
NEWVERSION=$(perl -e "$(echo "print $(cat ${PICO_SDK_PROJECTS_PATH_PICO}/version.txt)+0.001")")
|
|
|
|
echo "Building tzpuPico..."
|
|
cd ${PICO_SDK_PROJECTS_PATH_PICO}/
|
|
|
|
echo "Backing up version (${OLDVERSION}) to ${PICO_SDK_PROJECTS_PATH}/versions/pz80_${OLDVERSION}_$(date +'%y%m%d%H%M').tar.gz..."
|
|
tar -cvzf ${PICO_SDK_PROJECTS_PATH}/versions/pz80_${OLDVERSION}_$(date +'%y%m%d%H%M').tar.gz \
|
|
src pico_sdk_import.cmake pico_extras_import.cmake version.txt CMakeLists.txt
|
|
if [[ $? != 0 ]]; then
|
|
echo "Backup failure!"
|
|
cd ${PICO_PATH}
|
|
exit 1
|
|
fi
|
|
|
|
# Ensure our versions of board etc are in the SDK.
|
|
cp ${PICO_PATH}/picoZ80.h.tmpl ${PICO_SDK_PATH}/src/boards/include/boards/picoZ80.h
|
|
|
|
# Prepare build directory.
|
|
rm -fr build
|
|
mkdir -p build
|
|
cd build
|
|
#cmake -DPICO_BOARD=pimoroni_pga2350 -DPICO_PLATFORM=rp2350-arm-s -DPICO_COPY_TO_RAM=0 ..
|
|
if [[ "$1" == "DEBUG" ]]; then
|
|
cmake -DCMAKE_BUILD_TYPE=Debug -DPICO_COPY_TO_RAM=0 -DPICO_PLATFORM=rp2350-arm-s -DPICO_BOARD=picoZ80 ..
|
|
else
|
|
cmake -DPICO_COPY_TO_RAM=0 -DPICO_PLATFORM=rp2350-arm-s -DPICO_BOARD=picoZ80 ..
|
|
fi
|
|
if [[ $? != 0 ]]; then
|
|
echo "CMAKE failure!"
|
|
cd ${PICO_PATH}
|
|
exit 2
|
|
fi
|
|
make clean
|
|
#make VERBOSE=1 -j4
|
|
make -j4
|
|
if [[ $? != 0 ]]; then
|
|
echo "Build failure!"
|
|
cd ${PICO_PATH}
|
|
exit 3
|
|
fi
|
|
|
|
# Update to next version as this version has built without error.
|
|
echo ${NEWVERSION} > ${PICO_SDK_PROJECTS_PATH_PICO}/version.txt
|
|
cd ..
|
|
|
|
echo "Copying binaries to project dir..."
|
|
echo ""
|
|
mkdir -p ${PICO_SDK_PROJECTS_PATH_PICO}/fw/uf2/
|
|
mkdir -p ${PICO_SDK_PROJECTS_PATH_PICO}/fw/bin/
|
|
for f in $(find ${PICO_SDK_PROJECTS_PATH_PICO}/src/model/* -maxdepth 0 -type d)
|
|
do
|
|
FILE=$(basename $f)
|
|
#VERSION=$(cat ${f}/version.txt)
|
|
VERSION=$(perl -e "$(echo "print $(cat ${f}/version.txt)-0.001")")
|
|
echo "Target: ${FILE}"
|
|
if [ -f ${PICO_SDK_PROJECTS_PATH_PICO}/build/bin/model/${FILE}/${FILE}.uf2 ]; then
|
|
cp ${PICO_SDK_PROJECTS_PATH_PICO}/build/bin/model/${FILE}/${FILE}.uf2 ${PICO_SDK_PROJECTS_PATH_PICO}/fw/uf2/${FILE}_${VERSION}.uf2
|
|
fi
|
|
if [ -f ${PICO_SDK_PROJECTS_PATH_PICO}/build/bin/model/${FILE}/${FILE}.bin ]; then
|
|
cp ${PICO_SDK_PROJECTS_PATH_PICO}/build/bin/model/${FILE}/${FILE}.bin ${PICO_SDK_PROJECTS_PATH_PICO}/fw/bin/${FILE}_${VERSION}.bin
|
|
else
|
|
for vf in $(ls -1 ${PICO_SDK_PROJECTS_PATH_PICO}/build/bin/model/${FILE}/${FILE}*.bin 2>/dev/null)
|
|
do
|
|
VARIANTNAME=$(basename ${vf} .bin | sed "s/${FILE}_//g")
|
|
cp ${PICO_SDK_PROJECTS_PATH_PICO}/build/bin/model/${FILE}/${FILE}_${VARIANTNAME}.bin ${PICO_SDK_PROJECTS_PATH_PICO}/fw/bin/${FILE}_${VARIANTNAME}_${VERSION}.bin
|
|
done
|
|
fi
|
|
# if [ -f ${PICO_SDK_PROJECTS_PATH_PICO}/build/bin/model/${FILE}/${FILE}.uf2 ]; then
|
|
# ${PICO_SDK_PROJECTS_PATH_PICO}/build/_deps/picotool/picotool info -a ${PICO_SDK_PROJECTS_PATH_PICO}/build/bin/model/${FILE}/${FILE}.uf2
|
|
# fi
|
|
if [ -f ${PICO_SDK_PROJECTS_PATH_PICO}/build/bin/model/${FILE}/${FILE}.uf2 ]; then
|
|
cp ${PICO_SDK_PROJECTS_PATH_PICO}/build/bin/model/${FILE}/${FILE}.uf2 ${NAS_DST}/${FILE}_${VERSION}.uf2
|
|
fi
|
|
if [ -f ${PICO_SDK_PROJECTS_PATH_PICO}/build/bin/model/${FILE}/${FILE}.bin ]; then
|
|
cp ${PICO_SDK_PROJECTS_PATH_PICO}/build/bin/model/${FILE}/${FILE}.bin ${NAS_DST}/${FILE}_${VERSION}.bin
|
|
else
|
|
for vf in $(ls -1 ${PICO_SDK_PROJECTS_PATH_PICO}/build/bin/model/${FILE}/${FILE}*.bin 2>/dev/null)
|
|
do
|
|
VARIANTNAME=$(basename ${vf} .bin | sed "s/${FILE}_//g")
|
|
cp ${PICO_SDK_PROJECTS_PATH_PICO}/build/bin/model/${FILE}/${FILE}_${VARIANTNAME}.bin ${NAS_DST}/${FILE}_${VARIANTNAME}_${VERSION}.bin
|
|
done
|
|
fi
|
|
done
|
|
ls -lart ${PICO_SDK_PROJECTS_PATH_PICO}/fw/uf2/ ${PICO_SDK_PROJECTS_PATH_PICO}/fw/bin/
|
|
cp ${PICO_SDK_PROJECTS_PATH_PICO}/fw/uf2/* /srv2/build/
|
|
cp ${PICO_SDK_PROJECTS_PATH_PICO}/fw/bin/* /srv2/build/
|
|
mkdir -p ${PICO_SDK_PROJECTS_PATH_PICO}/fw/uf2.bak
|
|
mkdir -p ${PICO_SDK_PROJECTS_PATH_PICO}/fw/bin.bak
|
|
mv ${PICO_SDK_PROJECTS_PATH_PICO}/fw/uf2/* ${PICO_SDK_PROJECTS_PATH_PICO}/fw/uf2.bak/
|
|
mv ${PICO_SDK_PROJECTS_PATH_PICO}/fw/bin/* ${PICO_SDK_PROJECTS_PATH_PICO}/fw/bin.bak/
|
|
|
|
if [[ "$1" = "ALL" ]]; then
|
|
cd ${PICO_SDK_PROJECTS_PATH_PICOESP32}/
|
|
docker run --rm --privileged --volume /dev:/dev --volume /sys:/sys:ro --volume /dev/bus/usb:/dev/bus/usb -v $PWD:/project -w /project -it espressif/idf:release-v5.4 idf.py clean build
|
|
fi
|
|
|
|
# Save the esp32 backups too, out of the main dev tree.
|
|
mv ${PICO_SDK_PROJECTS_PATH_PICOESP32}/versions/* ${PICO_SDK_PROJECTS_PATH}/versions/
|
|
rsync -ah ${PICO_SDK_PROJECTS_PATH}/versions/ /srv2/dvlp/versions/ 2>/dev/null
|
|
|
|
echo ""
|
|
echo "****************************************************************************"
|
|
echo "* End of tzpuPico build... *"
|
|
echo "****************************************************************************"
|