From 268c934f330c010cf8cee8bf9e329fd034c91a14 Mon Sep 17 00:00:00 2001
From: Dimitris Lampridis <dimitris.lampridis@cern.ch>
Date: Fri, 15 Nov 2019 08:06:34 +0100
Subject: [PATCH] add options to skip patching, building and/or installing

---
 README.md                                |  7 +++++++
 scripts/adc_lib_build.sh                 |  8 ++++----
 scripts/check_dependencies               | 13 ++++++++-----
 scripts/fmc_adc_100m_build.sh            |  8 ++++----
 scripts/fmc_adc_100m_ref_spec_install.sh |  4 ++--
 scripts/fmc_sw_build.sh                  |  6 +++---
 scripts/fpga_manager_build.sh            |  4 ++--
 scripts/general_cores_build.sh           | 10 +++++-----
 scripts/mockturtle_build.sh              | 10 +++++-----
 scripts/post_script                      |  2 +-
 scripts/spec_carrier_build.sh            | 12 ++++++------
 scripts/svec_carrier_build.sh            |  6 +++---
 scripts/ual_install.sh                   | 12 ++++++------
 scripts/vmebridge_build.sh               | 24 ++++++++++++------------
 scripts/wrpc_sw_build.sh                 | 14 +++++++-------
 scripts/wrtd_build.sh                    | 20 ++++++++++----------
 scripts/zio_build.sh                     |  6 +++---
 17 files changed, 88 insertions(+), 78 deletions(-)

diff --git a/README.md b/README.md
index c9c777a..401f3cc 100644
--- a/README.md
+++ b/README.md
@@ -25,3 +25,10 @@ The following environment variables affect the behaviour of the scripts.
 * **$VERSION:** Kernel version to use. If not specified, it defaults to the output of `uname -r`.
 * **$LINUX:** Path to Kernel sources/headers. If not specified, it defaults to
   `/lib/modules/$KVERSION/build`.
+* **$SKIP_INSTALL:** If set to `true`, everything will be downloaded and built under `$BUILD_DIR`,
+  but nothing will be installed.
+* **$SKIP_BUILD:** If set to `true`, everything will be downloaded under `$BUILD_DIR`, but nothing
+  will be built. This automatically implies `$SKIP_INSTALL=true`.
+* **$SKIP_PATCH:** If set to `true`, no patches will be applied to the downloaded sources. This is
+  useful in particular when using a custom `$BUILD_DIR` and the patches have already been applied
+  during a previous run.
diff --git a/scripts/adc_lib_build.sh b/scripts/adc_lib_build.sh
index 1741fbd..0b330db 100644
--- a/scripts/adc_lib_build.sh
+++ b/scripts/adc_lib_build.sh
@@ -11,11 +11,11 @@ cd $BUILD_DIR
 [ -d $PROJECT ] || git clone https://ohwr.org/project/adc-lib.git $PROJECT
 cd $PROJECT
 git checkout -B release v2.5.0
-[ -e $PATCH_DIR/$PROJECT.diff ] && patch -p1 < $PATCH_DIR/$PROJECT.diff
+[ $SKIP_PATCH ] || [ -e $PATCH_DIR/$PROJECT.diff ] && patch -p1 < $PATCH_DIR/$PROJECT.diff
 export ZIO=$BUILD_DIR/zio
 export FMCADC100M=$BUILD_DIR/fmc-adc-100m14b4cha-sw
-make
-sudo -E make install
-sudo -E make -C lib/PyAdcLib install
+[ $SKIP_BUILD ] || make
+[ $SKIP_INSTALL ] || sudo -E make install
+[ $SKIP_INSTALL ] || sudo -E make -C lib/PyAdcLib install
 
 . $SCRIPT_DIR/post_script
diff --git a/scripts/check_dependencies b/scripts/check_dependencies
index 7292ff5..02dd90c 100644
--- a/scripts/check_dependencies
+++ b/scripts/check_dependencies
@@ -7,9 +7,12 @@ unset DEP_FAIL
 [ -z $BUILD_DIR ] && export BUILD_DIR=$(mktemp -d)
 [ -z $KVERSION ] && export KVERSION=$(uname -r)
 [ -z $LINUX ] && export LINUX=/lib/modules/$KVERSION/build
-[ -z $KERNELSRC ] && export KERNELSRC=$LINUX
-[ -z $SCRIPT_DIR ] && export SCRIPT_DIR=$(pwd)
-[ -z $PATCH_DIR ] && export PATCH_DIR=$(pwd)/../patches
+
+[ $SKIP_BUILD ] && export SKIP_INSTALL=true
+
+export SCRIPT_DIR=$(pwd)
+export PATCH_DIR=$(pwd)/../patches
+export KERNELSRC=$LINUX
 
 [ -f $BUILD_DIR/deps.ok ] && return 0
 
@@ -80,8 +83,8 @@ set -e
 
 # Always give priority to modules from the "extra" folder, where we install our modules.
 # This is needed for i2c-ocores, fpga-mgr and other modules that also exist in the mainline kernel.
-sudo mkdir -p /etc/depmod.d
-sudo sh -c 'echo "search extra" > /etc/depmod.d/ohwr_extra.conf'
+[ $SKIP_INSTALL ] || sudo mkdir -p /etc/depmod.d
+[ $SKIP_INSTALL ] || sudo sh -c 'echo "search extra" > /etc/depmod.d/ohwr_extra.conf'
 
 touch $BUILD_DIR/deps.ok
 
diff --git a/scripts/fmc_adc_100m_build.sh b/scripts/fmc_adc_100m_build.sh
index acf5d40..adcbc7d 100644
--- a/scripts/fmc_adc_100m_build.sh
+++ b/scripts/fmc_adc_100m_build.sh
@@ -13,11 +13,11 @@ cd $BUILD_DIR
 cd $PROJECT
 #TODO: release!
 git checkout dlamprid-dev
-[ -e $PATCH_DIR/$PROJECT.diff ] && patch -p1 < $PATCH_DIR/$PROJECT.diff
+[ $SKIP_PATCH ] || [ -e $PATCH_DIR/$PROJECT.diff ] && patch -p1 < $PATCH_DIR/$PROJECT.diff
 export ZIO=$BUILD_DIR/zio
 export FMC=$BUILD_DIR/fmc-sw
-make
-sudo -E make -C kernel modules_install
-sudo -E make -C tools install
+[ $SKIP_BUILD ] || make
+[ $SKIP_INSTALL ] || sudo -E make -C kernel modules_install
+[ $SKIP_INSTALL ] || sudo -E make -C tools install
 
 . $SCRIPT_DIR/post_script
diff --git a/scripts/fmc_adc_100m_ref_spec_install.sh b/scripts/fmc_adc_100m_ref_spec_install.sh
index 7491ec7..53197c0 100644
--- a/scripts/fmc_adc_100m_ref_spec_install.sh
+++ b/scripts/fmc_adc_100m_ref_spec_install.sh
@@ -14,8 +14,8 @@ cd $BUILD_DIR
 cd $PROJECT
 #TODO: release
 git checkout feature/convention
-make -C software
-sudo -E make -C software install
+[ $SKIP_BUILD ] || make -C software
+[ $SKIP_INSTALL ] || sudo -E make -C software install
 
 #TODO: donwload released gateware and install it
 
diff --git a/scripts/fmc_sw_build.sh b/scripts/fmc_sw_build.sh
index 8907e56..958293d 100644
--- a/scripts/fmc_sw_build.sh
+++ b/scripts/fmc_sw_build.sh
@@ -9,8 +9,8 @@ cd $BUILD_DIR
 [ -d $PROJECT ] || git clone https://ohwr.org/project/fmc-sw.git $PROJECT
 cd $PROJECT
 git checkout master
-[ -e $PATCH_DIR/$PROJECT.diff ] && patch -p1 < $PATCH_DIR/$PROJECT.diff
-make
-sudo -E make modules_install
+[ $SKIP_PATCH ] || [ -e $PATCH_DIR/$PROJECT.diff ] && patch -p1 < $PATCH_DIR/$PROJECT.diff
+[ $SKIP_BUILD ] || make
+[ $SKIP_INSTALL ] || sudo -E make modules_install
 
 . $SCRIPT_DIR/post_script
diff --git a/scripts/fpga_manager_build.sh b/scripts/fpga_manager_build.sh
index d8b2f1d..3c6e3c4 100644
--- a/scripts/fpga_manager_build.sh
+++ b/scripts/fpga_manager_build.sh
@@ -9,7 +9,7 @@ cd $BUILD_DIR
 [ -d $PROJECT ] || git clone https://gitlab.cern.ch/coht/fpga-manager.git $PROJECT
 cd $PROJECT
 git checkout master
-make
-sudo -E make modules_install
+[ $SKIP_BUILD ] || make
+[ $SKIP_INSTALL ] || sudo -E make modules_install
 
 . $SCRIPT_DIR/post_script
diff --git a/scripts/general_cores_build.sh b/scripts/general_cores_build.sh
index 56c3cbb..7674b37 100644
--- a/scripts/general_cores_build.sh
+++ b/scripts/general_cores_build.sh
@@ -9,10 +9,10 @@ cd $BUILD_DIR
 [ -d $PROJECT ] || git clone https://ohwr.org/project/general-cores.git $PROJECT
 cd $PROJECT
 git checkout proposed_master
-[ -e $PATCH_DIR/$PROJECT.diff ] && patch -p1 < $PATCH_DIR/$PROJECT.diff
-make -C software/htvic
-make -C software/i2c-ocores
-make -C software/spi-ocores
-sudo -E make -C software install
+[ $SKIP_PATCH ] || [ -e $PATCH_DIR/$PROJECT.diff ] && patch -p1 < $PATCH_DIR/$PROJECT.diff
+[ $SKIP_BUILD ] || make -C software/htvic
+[ $SKIP_BUILD ] || make -C software/i2c-ocores
+[ $SKIP_BUILD ] || make -C software/spi-ocores
+[ $SKIP_INSTALL ] || sudo -E make -C software install
 
 . $SCRIPT_DIR/post_script
diff --git a/scripts/mockturtle_build.sh b/scripts/mockturtle_build.sh
index 031a8a8..f171eb5 100644
--- a/scripts/mockturtle_build.sh
+++ b/scripts/mockturtle_build.sh
@@ -11,10 +11,10 @@ cd $BUILD_DIR
 [ -d $PROJECT ] || git clone https://ohwr.org/project/mock-turtle.git $PROJECT
 cd $PROJECT
 git checkout -B release v4.0.4
-WBGEN2=$BUILD_DIR/wishbone-gen/wbgen2 make -C software
-WBGEN2=$BUILD_DIR/wishbone-gen/wbgen2 sudo -E make -C software install
-sudo -E make -C software/lib/PyMockTurtle install
-sudo -E sh -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/mockturtle.conf'
-sudo -E ldconfig
+[ $SKIP_BUILD ] || WBGEN2=$BUILD_DIR/wishbone-gen/wbgen2 make -C software
+[ $SKIP_INSTALL ] || WBGEN2=$BUILD_DIR/wishbone-gen/wbgen2 sudo -E make -C software install
+[ $SKIP_INSTALL ] || sudo -E make -C software/lib/PyMockTurtle install
+[ $SKIP_INSTALL ] || sudo -E sh -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/mockturtle.conf'
+[ $SKIP_INSTALL ] || sudo -E ldconfig
 
 . $SCRIPT_DIR/post_script
diff --git a/scripts/post_script b/scripts/post_script
index 5dacb38..29fd63d 100644
--- a/scripts/post_script
+++ b/scripts/post_script
@@ -3,7 +3,7 @@
 set -e
 
 if [ ! -e $LINUX/System.map ]; then
-    sudo depmod -a $KVERSION
+    [ $SKIP_INSTALL ] || sudo depmod -a $KVERSION
 fi
 
 touch $BUILD_DIR/built.$PROJECT
diff --git a/scripts/spec_carrier_build.sh b/scripts/spec_carrier_build.sh
index d329ebf..1d7a3e7 100644
--- a/scripts/spec_carrier_build.sh
+++ b/scripts/spec_carrier_build.sh
@@ -14,20 +14,20 @@ cd $BUILD_DIR
 [ -d $PROJECT ] || git clone https://ohwr.org/project/spec.git $PROJECT
 cd $PROJECT
 git checkout -B release v1.4.4
-[ -e $PATCH_DIR/$PROJECT.diff ] && patch -p1 < $PATCH_DIR/$PROJECT.diff
+[ $SKIP_PATCH ] || [ -e $PATCH_DIR/$PROJECT.diff ] && patch -p1 < $PATCH_DIR/$PROJECT.diff
 export CHEBY="python $BUILD_DIR/cheby/proto/cheby.py"
 export FMC="$BUILD_DIR/fmc-sw"
 export I2C="$BUILD_DIR/general-cores/software/i2c-ocores"
 export SPI="$BUILD_DIR/general-cores/software/spi-ocores"
 export CONFIG_FPGA_MGR_BACKPORT="y"
 export CONFIG_FPGA_MGR_BACKPORT_PATH="$BUILD_DIR/fpga-manager"
-make -C software
-sudo -E make -C software modules_install
+[ $SKIP_BUILD ] || make -C software
+[ $SKIP_INSTALL ] || sudo -E make -C software modules_install
 
 SPEC_BIN="https://www.ohwr.org/project/spec/wikis/uploads/98d07df245b14b373b11a02ab7358cb2/spec-binaries-v1.4.4.tar.xz"
 curl $SPEC_BIN | tar xJ -C $BUILD_DIR
-sudo -E install -d /lib/firmware
-sudo -E install -m 0644 $BUILD_DIR/spec-binaries-v1.4.4/spec-golden-45T.bin /lib/firmware/
-sudo -E install -m 0644 $BUILD_DIR/spec-binaries-v1.4.4/spec-golden-150T.bin /lib/firmware/
+[ $SKIP_INSTALL ] || sudo -E install -d /lib/firmware
+[ $SKIP_INSTALL ] || sudo -E install -m 0644 $BUILD_DIR/spec-binaries-v1.4.4/spec-golden-45T.bin /lib/firmware/
+[ $SKIP_INSTALL ] || sudo -E install -m 0644 $BUILD_DIR/spec-binaries-v1.4.4/spec-golden-150T.bin /lib/firmware/
 
 . $SCRIPT_DIR/post_script
diff --git a/scripts/svec_carrier_build.sh b/scripts/svec_carrier_build.sh
index 8fa51cb..16ff019 100644
--- a/scripts/svec_carrier_build.sh
+++ b/scripts/svec_carrier_build.sh
@@ -16,7 +16,7 @@ cd $BUILD_DIR
 cd $PROJECT
 #TODO: release!
 git checkout develop
-[ -e $PATCH_DIR/$PROJECT.diff ] && patch -p1 < $PATCH_DIR/$PROJECT.diff
+[ $SKIP_PATCH ] || [ -e $PATCH_DIR/$PROJECT.diff ] && patch -p1 < $PATCH_DIR/$PROJECT.diff
 export CHEBY="python $BUILD_DIR/cheby/proto/cheby.py"
 export FMC="$BUILD_DIR/fmc-sw"
 export VMEBRIDGE="$BUILD_DIR/vmebridge"
@@ -25,7 +25,7 @@ export I2C="$BUILD_DIR/general-cores/software/i2c-ocores"
 #export SPI="$BUILD_DIR/general-cores/software/spi-ocores"
 export CONFIG_FPGA_MGR_BACKPORT="y"
 export CONFIG_FPGA_MGR_BACKPORT_PATH="$BUILD_DIR/fpga-manager"
-make -C software/kernel
-sudo -E make -C software modules_install
+[ $SKIP_BUILD ] || make -C software/kernel
+[ $SKIP_INSTALL ] || sudo -E make -C software modules_install
 
 . $SCRIPT_DIR/post_script
diff --git a/scripts/ual_install.sh b/scripts/ual_install.sh
index 31a9c12..24740a8 100644
--- a/scripts/ual_install.sh
+++ b/scripts/ual_install.sh
@@ -11,12 +11,12 @@ cd $BUILD_DIR
 [ -d $PROJECT ] || git clone https://gitlab.cern.ch/cohtdrivers/ual.git $PROJECT
 cd $PROJECT
 git checkout -B release v1.3.0
-[ -e $PATCH_DIR/$PROJECT.diff ] && patch -p1 < $PATCH_DIR/$PROJECT.diff
-make VMEBRIDGE=../../vmebridge CONFIG_VME=y
-sudo -E make install
-sudo -E sh -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/ual.conf'
-sudo -E ldconfig
+[ $SKIP_PATCH ] || [ -e $PATCH_DIR/$PROJECT.diff ] && patch -p1 < $PATCH_DIR/$PROJECT.diff
+[ $SKIP_BUILD ] || make VMEBRIDGE=../../vmebridge CONFIG_VME=y
+[ $SKIP_INSTALL ] || sudo -E make install
+[ $SKIP_INSTALL ] || sudo -E sh -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/ual.conf'
+[ $SKIP_INSTALL ] || sudo -E ldconfig
 cd PyUAL
-sudo -E python setup.py install
+[ $SKIP_INSTALL ] || sudo -E python setup.py install
 
 . $SCRIPT_DIR/post_script
diff --git a/scripts/vmebridge_build.sh b/scripts/vmebridge_build.sh
index d2fd7d7..9b6bccd 100644
--- a/scripts/vmebridge_build.sh
+++ b/scripts/vmebridge_build.sh
@@ -11,22 +11,22 @@ rm -rf vmebridge
 cd coht
 #TODO: release!
 git checkout develop
-[ -e $PATCH_DIR/$PROJECT.diff ] && patch -p1 < $PATCH_DIR/$PROJECT.diff
+[ $SKIP_PATCH ] || [ -e $PATCH_DIR/$PROJECT.diff ] && patch -p1 < $PATCH_DIR/$PROJECT.diff
 cp -r vmebridge ../
 cd ../vmebridge/driver
-make -C $LINUX M=`pwd` modules
-sudo -E make -C $LINUX M=`pwd` modules_install
+[ $SKIP_BUILD ] || make -C $LINUX M=`pwd` modules
+[ $SKIP_INSTALL ] || sudo -E make -C $LINUX M=`pwd` modules_install
 cd ../lib
-gcc -c -Wall -I../include -fPIC -DGIT_VERSION=\"none\" libvmebus.c libvmebus.h
-ar rv libvmebus.a libvmebus.o
+[ $SKIP_BUILD ] || gcc -c -Wall -I../include -fPIC -DGIT_VERSION=\"none\" libvmebus.c libvmebus.h
+[ $SKIP_BUILD ] || ar rv libvmebus.a libvmebus.o
 cd ../vmeutils
 CFLAGS="-Wall -I../include -DGIT_VERSION=\"none\" -L../lib -lvmebus"
-gcc $CFLAGS -o lsvme lsvme.c common.c
-gcc $CFLAGS -o vme-module vme-module.c module.c common.c
-gcc $CFLAGS -o vme-register vme-register.c register.c common.c
-sudo -E install -d /usr/local/bin
-sudo -E install -m 0755 lsvme /usr/local/bin
-sudo -E install -m 0755 vme-module /usr/local/bin
-sudo -E install -m 0755 vme-register /usr/local/bin
+[ $SKIP_BUILD ] || gcc $CFLAGS -o lsvme lsvme.c common.c
+[ $SKIP_BUILD ] || gcc $CFLAGS -o vme-module vme-module.c module.c common.c
+[ $SKIP_BUILD ] || gcc $CFLAGS -o vme-register vme-register.c register.c common.c
+[ $SKIP_INSTALL ] || sudo -E install -d /usr/local/bin
+[ $SKIP_INSTALL ] || sudo -E install -m 0755 lsvme /usr/local/bin
+[ $SKIP_INSTALL ] || sudo -E install -m 0755 vme-module /usr/local/bin
+[ $SKIP_INSTALL ] || sudo -E install -m 0755 vme-register /usr/local/bin
 
 . $SCRIPT_DIR/post_script
diff --git a/scripts/wrpc_sw_build.sh b/scripts/wrpc_sw_build.sh
index d2efd98..11e2ba9 100644
--- a/scripts/wrpc_sw_build.sh
+++ b/scripts/wrpc_sw_build.sh
@@ -9,12 +9,12 @@ cd $BUILD_DIR
 [ -d $PROJECT ] || git clone https://ohwr.org/project/wrpc-sw.git $PROJECT
 cd $PROJECT
 git checkout -B release wrpc-v4.2
-make -C liblinux
-make -C liblinux/extest
-make -C tools wrpc-vuart wrpc-diags wr-streamers
-sudo -E install -d /usr/local/bin
-sudo -E install -m 0755 tools/wrpc-vuart   /usr/local/bin
-sudo -E install -m 0755 tools/wrpc-diags   /usr/local/bin
-sudo -E install -m 0755 tools/wr-streamers /usr/local/bin
+[ $SKIP_BUILD ] || make -C liblinux
+[ $SKIP_BUILD ] || make -C liblinux/extest
+[ $SKIP_BUILD ] || make -C tools wrpc-vuart wrpc-diags wr-streamers
+[ $SKIP_INSTALL ] || sudo -E install -d /usr/local/bin
+[ $SKIP_INSTALL ] || sudo -E install -m 0755 tools/wrpc-vuart   /usr/local/bin
+[ $SKIP_INSTALL ] || sudo -E install -m 0755 tools/wrpc-diags   /usr/local/bin
+[ $SKIP_INSTALL ] || sudo -E install -m 0755 tools/wr-streamers /usr/local/bin
 
 . $SCRIPT_DIR/post_script
diff --git a/scripts/wrtd_build.sh b/scripts/wrtd_build.sh
index 5c96e40..5cd4d4d 100644
--- a/scripts/wrtd_build.sh
+++ b/scripts/wrtd_build.sh
@@ -13,18 +13,18 @@ cd $PROJECT
 #TODO: release
 git checkout proposed_master
 export WRTD_DEP_TRTL=$BUILD_DIR/mock-turtle
-make -C software
-sudo -E make -C software install
-sudo -E sh -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/wrtd.conf'
-sudo -E ldconfig
-sudo -E install -d /etc/udev/rules.d/
-sudo -E install -m 0644 software/udev/rules.d/* /etc/udev/rules.d/
-sudo -E sh -c 'getent group wrtd 2>&1 > /dev/null || groupadd wrtd'
+[ $SKIP_BUILD ] || make -C software
+[ $SKIP_INSTALL ] || sudo -E make -C software install
+[ $SKIP_INSTALL ] || sudo -E sh -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/wrtd.conf'
+[ $SKIP_INSTALL ] || sudo -E ldconfig
+[ $SKIP_INSTALL ] || sudo -E install -d /etc/udev/rules.d/
+[ $SKIP_INSTALL ] || sudo -E install -m 0644 software/udev/rules.d/* /etc/udev/rules.d/
+[ $SKIP_INSTALL ] || sudo -E sh -c 'getent group wrtd 2>&1 > /dev/null || groupadd wrtd'
 
 WRTD_BIN="https://www.ohwr.org/project/wrtd/wikis/uploads/8c95166b306cf12b6d75c6e0b27f142d/wrtd-binaries-v1.0.0.tar.gz"
 curl $WRTD_BIN | tar xz -C $BUILD_DIR
-sudo -E install -d /lib/firmware
-sudo -E install -m 0644 $BUILD_DIR/wrtd-binaries-v1.0.0/wrtd_ref_spec150t_adc/gateware/wrtd_ref_spec150t_adc.bin /lib/firmware/
-sudo -E install -m 0644 $BUILD_DIR/wrtd-binaries-v1.0.0/wrtd_ref_svec_tdc_fd/gateware/wrtd_ref_svec_tdc_fd.bin   /lib/firmware/
+[ $SKIP_INSTALL ] || sudo -E install -d /lib/firmware
+[ $SKIP_INSTALL ] || sudo -E install -m 0644 $BUILD_DIR/wrtd-binaries-v1.0.0/wrtd_ref_spec150t_adc/gateware/wrtd_ref_spec150t_adc.bin /lib/firmware/
+[ $SKIP_INSTALL ] || sudo -E install -m 0644 $BUILD_DIR/wrtd-binaries-v1.0.0/wrtd_ref_svec_tdc_fd/gateware/wrtd_ref_svec_tdc_fd.bin   /lib/firmware/
 
 . $SCRIPT_DIR/post_script
diff --git a/scripts/zio_build.sh b/scripts/zio_build.sh
index 5b045b3..de54e76 100644
--- a/scripts/zio_build.sh
+++ b/scripts/zio_build.sh
@@ -9,8 +9,8 @@ cd $BUILD_DIR
 [ -d $PROJECT ] || git clone https://ohwr.org/project/zio.git $PROJECT
 cd $PROJECT
 git checkout -B release v1.4.2
-[ -e $PATCH_DIR/$PROJECT.diff ] && patch -p1 < $PATCH_DIR/$PROJECT.diff
-make -C drivers/zio
-sudo -E make -C drivers/zio modules_install
+[ $SKIP_PATCH ] || [ -e $PATCH_DIR/$PROJECT.diff ] && patch -p1 < $PATCH_DIR/$PROJECT.diff
+[ $SKIP_BUILD ] || make -C drivers/zio
+[ $SKIP_INSTALL ] || sudo -E make -C drivers/zio modules_install
 
 . $SCRIPT_DIR/post_script
-- 
GitLab