-#!/bin/bash
+#!/bin/sh
-check-make-ok()
-{
+# build
+# Simple wiringPi build and install script
+#
+# Copyright (c) 2012-2015 Gordon Henderson
+#################################################################################
+# This file is part of wiringPi:
+# Wiring Compatable 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..."
}
if [ x$1 = "xclean" ]; then
- echo Cleaning
- echo
cd wiringPi
- make clean
+ echo -n "wiringPi: " ; make clean
+ cd ../devLib
+ echo -n "DevLib: " ; make clean
cd ../gpio
- make clean
+ echo -n "gpio: " ; make clean
cd ../examples
- make clean
+ 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
exit
fi
if [ x$1 = "xuninstall" ]; then
- echo Uninstalling
- echo
- echo "WiringPi library"
cd wiringPi
- sudo make uninstall
- echo
- echo "GPIO Utility"
+ echo -n "wiringPi: " ; sudo make uninstall
+ cd ../devLib
+ echo -n "DevLib: " ; sudo make uninstall
cd ../gpio
- sudo make uninstall
- cd ..
+ echo -n "gpio: " ; sudo make uninstall
+ exit
+fi
+
+# Only if you know what you're doing!
+
+if [ x$1 = "xdebian" ]; then
+ here=`pwd`
+ cd debian/wiringPi
+ rm -rf usr
+ cd $here/wiringPi
+ make install-deb
+ cd $here/devLib
+ make install-deb
+ cd $here/gpio
+ make install-deb
+ cd $here/debian
+ 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
echo "wiringPi Build script"
echo "====================="
echo
-# Check for I2C being installed...
-# ... and if-so, then automatically make the I2C helpers
-
- if [ -f /usr/include/linux/i2c-dev.h ]; then
- grep -q i2c_smbus_read_byte /usr/include/linux/i2c-dev.h
- if [ $? = 0 ]; then
- target=i2c
- echo "Building wiringPi with the I2C helper libraries."
- else
- target=all
- echo "The wiringPi I2C helper libraries will not be built."
- fi
+ 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"
+ echo "WiringPi Library"
cd wiringPi
sudo make uninstall
- make $target
- check-make-ok
- sudo make install
- check-make-ok
+ 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
- check-make-ok
+ make -j5
+ check_make_ok
sudo make install
- check-make-ok
+ check_make_ok
# echo
# echo "Examples"
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 ""