|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180 |
- #!/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 <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 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 ""
|