|
- #!/usr/bin/env bash
-
- # 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!
- ###############################################################################
-
- function check_make_ok() {
- if [[ $? -ne 0 ]]; then
- echo
- echo "Make Failed..."
- echo "Please check the messages and fix any problems."
- echo
- exit 1
- fi
- }
-
- function doClean() {
- echo
- echo "Cleaning"
- echo
- 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 ../PiGlow
- #echo -n "PiGlow: " ; make clean
- cd ../q2w
- #echo -n "Quick2Wire: " ; make clean
- cd ../scrollPhat
- #echo -n "scrollPhat: " ; make clean
- cd ../..
- echo
- }
-
- function doUninstall() {
- echo
- echo "Uninstalling"
- echo
- echo "WiringPi library"
- cd wiringPi
- echo -n "wiringPi: " ; sudo make uninstall
- cd ../devLib
- echo -n "DevLib: " ; sudo make uninstall
- cd ../gpio
- echo -n "gpio: " ; sudo make uninstall
- }
-
- ###############################################################################
- # Main build script
-
- echo "WiringPi Build script"
- echo "========================================"
-
- nargs=$#
- while [[ $# -gt 0 ]]; do
- if [[ "$1" == "clean" ]]; then
- doClean
- fi
- if [[ "$1" == "uninstall" ]]; then
- doUninstall
- fi
-
- shift # next arg!
- done
-
- # Targets specified on the command line were processed => Done.
- if [[ nargs -ne 0 ]]; then exit; fi
-
- # Default if nothing specified on command line:
-
- echo
- echo "WiringPi Library"
- cd wiringPi
- sudo make uninstall
- make -j5
- check_make_ok
- sudo make install
- check_make_ok
-
- echo
- echo "WiringPi Devices Library"
- cd ../devLib
- sudo make uninstall
- make -j5
- check_make_ok
- sudo make install
- 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 ""
|