first commit
This commit is contained in:
300
build
Normal file
300
build
Normal file
@@ -0,0 +1,300 @@
|
||||
#!/bin/bash -e
|
||||
|
||||
# build
|
||||
# Simple wiringPi build and install script
|
||||
#
|
||||
# Copyright (c) 2012-2015 Gordon Henderson
|
||||
#################################################################################
|
||||
# This file is part of wiringPi:
|
||||
# A "wiring" library for the Raspberry Pi
|
||||
#
|
||||
# wiringPi is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Lesser General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# wiringPi 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 Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public License
|
||||
# along with wiringPi. If not, see <http://www.gnu.org/licenses/>.
|
||||
#################################################################################
|
||||
#
|
||||
# wiringPi is designed to run on a Raspberry Pi only.
|
||||
# However if you're clever enough to actually look at this script to
|
||||
# see why it's not building for you, then good luck.
|
||||
#
|
||||
# To everyone else: Stop using cheap alternatives. Support the
|
||||
# Raspberry Pi Foundation as they're the only ones putting money
|
||||
# back into education!
|
||||
#################################################################################
|
||||
|
||||
check_make_ok() {
|
||||
if [ $? != 0 ]; then
|
||||
echo ""
|
||||
echo "Make Failed..."
|
||||
echo "Please check the messages and fix any problems. If you're still stuck,"
|
||||
echo "then please email all the output and as many details as you can to"
|
||||
echo " projects@drogon.net"
|
||||
echo ""
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
select_boards()
|
||||
{
|
||||
local cnt=0
|
||||
local choice
|
||||
local call=${1}
|
||||
|
||||
boards=("orangepir1"
|
||||
"orangepizero"
|
||||
"orangepizero-lts"
|
||||
"orangepipc"
|
||||
"orangepipch5"
|
||||
"orangepipcplus"
|
||||
"orangepiplus2e"
|
||||
"orangepione"
|
||||
"orangepioneh5"
|
||||
"orangepilite"
|
||||
"orangepiplus"
|
||||
"orangepizeroplus2h3"
|
||||
"orangepizeroplus"
|
||||
"orangepipc2"
|
||||
"orangepiprime"
|
||||
"orangepizeroplus2h5"
|
||||
"orangepiwin"
|
||||
"orangepiwinplus"
|
||||
"orangepi3"
|
||||
"orangepi3-lts"
|
||||
"orangepilite2"
|
||||
"orangepioneplus"
|
||||
"orangepi4"
|
||||
"orangepi4-lts"
|
||||
"orangepirk3399"
|
||||
"orangepi800"
|
||||
"orangepizero2"
|
||||
"orangepizero2-lts"
|
||||
"orangepizero2-b"
|
||||
"orangepizero3"
|
||||
"orangepir1plus-lts"
|
||||
"orangepir1plus")
|
||||
|
||||
if [[ -f /etc/orangepi-release ]]; then
|
||||
|
||||
source /etc/orangepi-release
|
||||
|
||||
elif [[ -f /etc/armbian-release ]]; then
|
||||
|
||||
source /etc/armbian-release
|
||||
[[ $BOARD == orangepi-r1 ]] && BOARD=orangepir1
|
||||
[[ $BOARD == orangepi-rk3399 ]] && BOARD=orangepirk3399
|
||||
[[ $BOARD == orangepizeroplus2-h3 ]] && BOARD=orangepizeroplus2h3
|
||||
[[ $BOARD == orangepizeroplus2-h5 ]] && BOARD=orangepizeroplus2h5
|
||||
|
||||
else
|
||||
|
||||
printf "All available boards:\n"
|
||||
for var in ${boards[@]} ; do
|
||||
printf "%4d. %s\n" $cnt ${boards[$cnt]}
|
||||
((cnt+=1))
|
||||
done
|
||||
|
||||
while true ; do
|
||||
read -p "Choice: " choice
|
||||
if [ -z "${choice}" ] ; then
|
||||
continue
|
||||
fi
|
||||
if [ -z "${choice//[0-9]/}" ] ; then
|
||||
if [ $choice -ge 0 -a $choice -lt $cnt ] ; then
|
||||
export BOARD="${boards[$choice]}"
|
||||
break
|
||||
fi
|
||||
fi
|
||||
printf "Invalid input ...\n"
|
||||
done
|
||||
fi
|
||||
|
||||
[[ $BOARD == orangepir1 ]] && BOARD=orangepir1-h2
|
||||
[[ $BOARD == orangepizero ]] && BOARD=orangepizero-h2
|
||||
[[ $BOARD == orangepizero-lts ]] && BOARD=orangepizero-h2
|
||||
[[ $BOARD == orangepipc ]] && BOARD=orangepipc-h3
|
||||
[[ $BOARD == orangepipch5 ]] && BOARD=orangepipc-h3
|
||||
[[ $BOARD == orangepipcplus ]] && BOARD=orangepipcplus-h3
|
||||
[[ $BOARD == orangepiplus2e ]] && BOARD=orangepiplus2e-h3
|
||||
[[ $BOARD == orangepione ]] && BOARD=orangepione-h3
|
||||
[[ $BOARD == orangepioneh5 ]] && BOARD=orangepione-h3
|
||||
[[ $BOARD == orangepilite ]] && BOARD=orangepilite-h3
|
||||
[[ $BOARD == orangepiplus ]] && BOARD=orangepiplus-h3
|
||||
[[ $BOARD == orangepizeroplus ]] && BOARD=orangepizeroplus-h5
|
||||
[[ $BOARD == orangepipc2 ]] && BOARD=orangepipc2-h5
|
||||
[[ $BOARD == orangepiprime ]] && BOARD=orangepiprime-h5
|
||||
[[ $BOARD == orangepiwin ]] && BOARD=orangepiwin-a64
|
||||
[[ $BOARD == orangepiwinplus ]] && BOARD=orangepiwinplus-a64
|
||||
[[ $BOARD == orangepi3 ]] && BOARD=orangepi3-h6
|
||||
[[ $BOARD == orangepi3-lts ]] && BOARD=orangepi3-h6
|
||||
[[ $BOARD == orangepilite2 ]] && BOARD=orangepilite2-h6
|
||||
[[ $BOARD == orangepioneplus ]] && BOARD=orangepioneplus-h6
|
||||
[[ $BOARD == orangepizero2 ]] && BOARD=orangepizero2-h616
|
||||
[[ $BOARD == orangepizero2-lts ]] && BOARD=orangepizero2-h616
|
||||
[[ $BOARD == orangepizero2-b ]] && BOARD=orangepizero2-h616
|
||||
[[ $BOARD == orangepizero3 ]] && BOARD=orangepizero2-h616
|
||||
[[ $BOARD == orangepir1plus ]] && BOARD=orangepir1plus-rk3328
|
||||
[[ $BOARD == orangepir1plus-lts ]] && BOARD=orangepir1plus-rk3328
|
||||
|
||||
export BOARD="${BOARD}"
|
||||
}
|
||||
|
||||
sudo=${WIRINGPI_SUDO-sudo}
|
||||
|
||||
if [ x$1 = "xclean" ]; then
|
||||
cd wiringPi
|
||||
echo -n "wiringPi: " ; make clean
|
||||
cd ../devLib
|
||||
echo -n "DevLib: " ; make clean
|
||||
cd ../gpio
|
||||
echo -n "gpio: " ; make clean
|
||||
cd ../examples
|
||||
echo -n "Examples: " ; make clean
|
||||
cd Gertboard
|
||||
echo -n "Gertboard: " ; make clean
|
||||
cd ../PiFace
|
||||
echo -n "PiFace: " ; make clean
|
||||
cd ../q2w
|
||||
echo -n "Quick2Wire: " ; make clean
|
||||
cd ../PiGlow
|
||||
echo -n "PiGlow: " ; make clean
|
||||
cd ../scrollPhat
|
||||
echo -n "scrollPhat: " ; make clean
|
||||
cd ../..
|
||||
echo -n "Deb: " ; rm -f debian-template/wiringpi*.deb
|
||||
echo
|
||||
exit
|
||||
fi
|
||||
|
||||
if [ x$1 = "xuninstall" ]; then
|
||||
cd wiringPi
|
||||
echo -n "wiringPi: " ; $sudo make uninstall
|
||||
cd ../devLib
|
||||
echo -n "DevLib: " ; $sudo make uninstall
|
||||
cd ../gpio
|
||||
echo -n "gpio: " ; $sudo make uninstall
|
||||
exit
|
||||
fi
|
||||
|
||||
# Only if you know what you're doing!
|
||||
|
||||
if [ x$1 = "xdebian" ]; then
|
||||
here=`pwd`
|
||||
echo "removing old libs"
|
||||
cd debian-template/wiringPi
|
||||
rm -rf usr
|
||||
echo "building wiringPi"
|
||||
cd $here/wiringPi
|
||||
make install-deb
|
||||
echo "building devLib"
|
||||
cd $here/devLib
|
||||
make install-deb INCLUDE='-I. -I../wiringPi'
|
||||
echo "building gpio"
|
||||
cd $here/gpio
|
||||
make install-deb INCLUDE='-I../wiringPi -I../devLib' LDFLAGS=-L../debian-template/wiringPi/usr/lib
|
||||
echo "Building deb package"
|
||||
cd $here/debian-template
|
||||
fakeroot dpkg-deb --build wiringPi
|
||||
mv wiringPi.deb wiringpi-`cat $here/VERSION`-1.deb
|
||||
exit
|
||||
fi
|
||||
|
||||
if [ x$1 != "x" ]; then
|
||||
echo "Usage: $0 [clean | uninstall]"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
select_boards
|
||||
|
||||
echo "wiringPi Build script"
|
||||
echo "====================="
|
||||
echo
|
||||
|
||||
hardware=`fgrep Hardware /proc/cpuinfo | head -1 | awk '{ print $3 }'`
|
||||
|
||||
# if [ x$hardware != "xBCM2708" ]; then
|
||||
# echo ""
|
||||
# echo " +------------------------------------------------------------+"
|
||||
# echo " | wiringPi is designed to run on the Raspberry Pi only. |"
|
||||
# echo " | This processor does not appear to be a Raspberry Pi. |"
|
||||
# echo " +------------------------------------------------------------+"
|
||||
# echo " | In the unlikely event that you think it is a Raspberry Pi, |"
|
||||
# echo " | then please accept my apologies and email the contents of |"
|
||||
# echo " | /proc/cpuinfo to projects@drogon.net. |"
|
||||
# echo " | - Thanks, Gordon |"
|
||||
# echo " +------------------------------------------------------------+"
|
||||
# echo ""
|
||||
# exit 1
|
||||
# fi
|
||||
|
||||
|
||||
echo
|
||||
echo "WiringPi Library"
|
||||
cd wiringPi
|
||||
$sudo make uninstall
|
||||
if [ x$1 = "xstatic" ]; then
|
||||
make -j5 static
|
||||
check_make_ok
|
||||
$sudo make install-static
|
||||
else
|
||||
make -j5
|
||||
check_make_ok
|
||||
$sudo make install
|
||||
fi
|
||||
check_make_ok
|
||||
|
||||
echo
|
||||
echo "WiringPi Devices Library"
|
||||
cd ../devLib
|
||||
$sudo make uninstall
|
||||
if [ x$1 = "xstatic" ]; then
|
||||
make -j5 static
|
||||
check_make_ok
|
||||
$sudo make install-static
|
||||
else
|
||||
make -j5
|
||||
check_make_ok
|
||||
$sudo make install
|
||||
fi
|
||||
check_make_ok
|
||||
|
||||
echo
|
||||
echo "GPIO Utility"
|
||||
cd ../gpio
|
||||
make -j5
|
||||
check_make_ok
|
||||
$sudo make install
|
||||
check_make_ok
|
||||
|
||||
# echo
|
||||
# echo "wiringPi Daemon"
|
||||
# cd ../wiringPiD
|
||||
# make -j5
|
||||
# check_make_ok
|
||||
# $sudo make install
|
||||
# check_make_ok
|
||||
|
||||
# echo
|
||||
# echo "Examples"
|
||||
# cd ../examples
|
||||
# make
|
||||
# cd ..
|
||||
|
||||
echo
|
||||
echo All Done.
|
||||
echo ""
|
||||
echo "NOTE: To compile programs with wiringPi, you need to add:"
|
||||
echo " -lwiringPi"
|
||||
echo " to your compile line(s) To use the Gertboard, MaxDetect, etc."
|
||||
echo " code (the devLib), you need to also add:"
|
||||
echo " -lwiringPiDev"
|
||||
echo " to your compile line(s)."
|
||||
echo ""
|
Reference in New Issue
Block a user