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