#!/bin/sh -e # build # Simple wiringPi build and install script # # Copyright (c) 2012-2024 Gordon Henderson and contributors ################################################################################# # 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 . ################################################################################# # # 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 raise a GitHub issue with the output and as many details as you can" echo " https://github.com/WiringPi/WiringPi/issues" echo "" exit 1 fi } 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 vMaj=`cut -d. -f1 VERSION` vMin=`cut -d. -f2 VERSION` here=`pwd` deb_destdir=${here}/debian-template/wiringPi cd debian-template/wiringPi export VERSION=$vMaj.$vMin export ARCH=$(dpkg-architecture -qDEB_HOST_ARCH) echo version:$VERSION architecture:$ARCH envsubst < control_template > DEBIAN/control rm -rf usr cd $here/wiringPi make install-deb DEB_DESTDIR=${deb_destdir} cd $here/devLib make install-deb INCLUDE='-I. -I../wiringPi' DEB_DESTDIR=${deb_destdir} cd $here/gpio make install-deb INCLUDE='-I../wiringPi -I../devLib' LDFLAGS=-L../debian-template/wiringPi/usr/lib DEB_DESTDIR=${deb_destdir} cd $here/debian-template fakeroot dpkg-deb --build wiringPi dpkg-name -o wiringPi.deb exit fi if [ x$1 != "x" ]; then echo "Usage: $0 [clean | uninstall]" exit 1 fi echo "wiringPi Build script" echo "=====================" echo hardware=`fgrep Hardware /proc/cpuinfo | head -1 | awk '{ print $3 }'` 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 ""