You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
227 lines
6.1 KiB
227 lines
6.1 KiB
#!/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=("OrangePi_R1" "OrangePi_ZERO" "OrangePi_PC" "OrangePi_PLUS" "OrangePi_PCPLUS" "OrangePi_PLUS2E" "OrangePi_ONE_H3" "OrangePi_LITE_H3" "OrangePi_ZEROPLUS2_H3" "OrangePi_PC2" "OrangePi_PRIME" "OrangePi_ZEROPLUS" "OrangePi_ZEROPLUS2_H5" "OrangePi_WIN" "OrangePi_WINPLUS" "OrangePi_3" "OrangePi_LITE2" "OrangePi_ONEPLUS" "OrangePi_4" "OrangePi_RK3399") |
|
|
|
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 PLATFORM="${boards[$choice]}" |
|
echo $PLATFORM |
|
break |
|
fi |
|
fi |
|
printf "Invalid input ...\n" |
|
done |
|
} |
|
|
|
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 ""
|
|
|