Gordons Projects

--> Projects Top-Level GIT

Many changes - tidying up the extensions interfaces.
[wiringPi] / build
diff --git a/build b/build
index cc6804a..368e8f4 100755 (executable)
--- a/build
+++ b/build
@@ -1,22 +1,37 @@
-#!/bin/bash
-
-i2c-install()
-{
-  echo "* wiringPi needs the I2C Development Libraires installing."
-  echo ""
-  echo "If using Debian/Raspbian, then type this command:"
-  echo "  sudo apt-get install libi2c-dev"
-  echo "then run ./build again."
-  echo ""
-  echo "If using another Linux distribution, then you will have to"
-  echo "work out how to install the I2C Developmen Libraries for your"
-  echo "system. (Sorry - I don't know - do let me know though!)"
-  echo ""
-  exit 1
-}
+#!/bin/sh -e
 
-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..."
@@ -28,62 +43,136 @@ check-make-ok()
   fi
 }
 
+sudo=${WIRINGPI_SUDO-sudo}
 
 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
-  cd ..
-elif [ x$1 = "xuninstall" ]; then
-  echo Uninstalling
-  echo
-  echo "WiringPi library"
+  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
+  exit
+fi
+
+if [ x$1 = "xuninstall" ]; then
   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 ..
-else
-  echo wiringPi Build script - please wait...
+  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-template/wiringPi
+  rm -rf usr
+  cd $here/wiringPi
+  make install-deb
+  cd $here/devLib
+  make install-deb INCLUDE='-I. -I../wiringPi'
+  cd $here/gpio
+  make install-deb INCLUDE='-I../wiringPi -I../devLib' LDFLAGS=-L../debian-template/wiringPi/usr/lib
+  cd $here/debian-template
+  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...
+  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
 
-  if [ ! -f /usr/include/linux/i2c-dev.h ]; then
-    i2c-install
+
+  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
-  grep -q i2c_smbus_read_byte /usr/include/linux/i2c-dev.h
-  if [ $? = 1 ]; then
-    i2c-install
+  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 "WiringPi library"
-  cd wiringPi
-  sudo make uninstall
-  make
-  check-make-ok
-  sudo make install
-  check-make-ok
   echo
   echo "GPIO Utility"
   cd ../gpio
-  make
-  check-make-ok
-  sudo make install
-  check-make-ok
-  echo
-  echo "Examples"
-  cd ../examples
-  make
-  cd ..
-fi
+  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 ""