chiark / gitweb /
Debian build: ./newVersion updates debian/changelog too.
[wiringPi.git] / build
diff --git a/build b/build
index bac483a475e7072b85df09d7df5737e694b7811a..57f150e69461eb0e2b3ddf576f7c6d70b1058400 100755 (executable)
--- a/build
+++ b/build
@@ -1,4 +1,35 @@
-#!/bin/sh
+#!/bin/sh -e
+
+# 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
@@ -12,6 +43,8 @@ check_make_ok() {
   fi
 }
 
+sudo=${WIRINGPI_SUDO-sudo}
+
 if [ x$1 = "xclean" ]; then
   cd wiringPi
   echo -n "wiringPi:   "       ; make clean
@@ -34,55 +67,105 @@ fi
 
 if [ x$1 = "xuninstall" ]; then
   cd wiringPi
-  echo -n "wiringPi: " ; sudo make uninstall
+  echo -n "wiringPi: " ; $sudo make uninstall
   cd ../devLib
-  echo -n "DevLib:   " ; sudo make uninstall
+  echo -n "DevLib:   " ; $sudo make uninstall
   cd ../gpio
-  echo -n "gpio:     " ; sudo make uninstall
+  echo -n "gpio:     " ; $sudo make uninstall
+  exit
+fi
+
+if [ x$1 = "xdebian" ]; then
+  if ! dpkg-checkbuilddeps; then
+    $sudo apt-get install build-essential debhelper fakeroot
+    dpkg-checkbuilddeps
+  fi
+  dpkg-buildpackage -b -us -uc -rfakeroot
+  exit
+fi
+
+# Only if you know what you're doing!
+
+if [ x$1 = "xdebian-template" ]; then
+  # produces a single .deb in a nonstandard way from debian-template/
+  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
 
+  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"
   cd wiringPi
-  sudo make uninstall
+  $sudo make uninstall
   if [ x$1 = "xstatic" ]; then
-    make static
+    make -j5 static
     check_make_ok
-    sudo make install-static
+    $sudo make install-static
   else
-    make
+    make -j5
     check_make_ok
-    sudo make install
+    $sudo make install
   fi
   check_make_ok
 
   echo
   echo "WiringPi Devices Library"
   cd ../devLib
-  sudo make uninstall
+  $sudo make uninstall
   if [ x$1 = "xstatic" ]; then
-    make static
+    make -j5 static
     check_make_ok
-    sudo make install-static
+    $sudo make install-static
   else
-    make
+    make -j5
     check_make_ok
-    sudo make install
+    $sudo make install
   fi
   check_make_ok
 
   echo
   echo "GPIO Utility"
   cd ../gpio
-  make
+  make -j5
   check_make_ok
-  sudo make install
+  $sudo make install
   check_make_ok
 
 # echo