You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							222 lines
						
					
					
						
							5.8 KiB
						
					
					
				
			
		
		
	
	
							222 lines
						
					
					
						
							5.8 KiB
						
					
					
				#!/bin/bash -e | 
						|
 | 
						|
# 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! | 
						|
################################################################################# | 
						|
 | 
						|
check_make_ok() { | 
						|
  if [ $? != 0 ]; then | 
						|
    echo "" | 
						|
    echo "Make Failed..." | 
						|
    echo "Please check the messages and fix any problems. If you're still stuck," | 
						|
    echo "then please email all the output and as many details as you can to" | 
						|
    echo "  projects@drogon.net" | 
						|
    echo "" | 
						|
    exit 1 | 
						|
  fi | 
						|
} | 
						|
 | 
						|
select_boards() | 
						|
{ | 
						|
    local cnt=0 | 
						|
    local choice | 
						|
    local call=${1} | 
						|
 | 
						|
    boards=("OrangePi_PC2" "OrangePi_A64" "OrangePi_ZERO" "OrangePi_H3" "OrangePi_LITE2" "OrangePi_H3_ZEROPLUS2" "OrangePi_3" "OrangePi_RK3399" "OrangePi_ONEPLUS") | 
						|
 | 
						|
    printf "All available boards:\n" | 
						|
    for var in ${boards[@]} ; do | 
						|
        printf "%4d. %s\n" $cnt ${boards[$cnt]} | 
						|
        ((cnt+=1)) | 
						|
    done | 
						|
 | 
						|
    while true ; do | 
						|
        read -p "Choice: " choice | 
						|
        if [ -z "${choice}" ] ; then | 
						|
            continue | 
						|
        fi | 
						|
 | 
						|
        if [ -z "${choice//[0-9]/}" ] ; then | 
						|
            if [ $choice -ge 0 -a $choice -lt $cnt ] ; then | 
						|
                export PLATFORM="${boards[$choice]}" | 
						|
		echo $PLATFORM | 
						|
                break | 
						|
            fi | 
						|
        fi | 
						|
        printf "Invalid input ...\n" | 
						|
    done | 
						|
} | 
						|
 | 
						|
sudo=${WIRINGPI_SUDO-sudo} | 
						|
 | 
						|
if [ x$1 = "xclean" ]; then | 
						|
  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 ../q2w | 
						|
  echo -n "Quick2Wire: "	; make clean | 
						|
  cd ../PiGlow | 
						|
  echo -n "PiGlow:     "	; make clean | 
						|
  cd ../scrollPhat | 
						|
  echo -n "scrollPhat: "	; make clean | 
						|
  cd ../.. | 
						|
  echo -n "Deb: " ; rm  -f debian-template/wiringpi*.deb | 
						|
  echo | 
						|
  exit | 
						|
fi | 
						|
 | 
						|
if [ x$1 = "xuninstall" ]; then | 
						|
  cd wiringPi | 
						|
  echo -n "wiringPi: " ; $sudo make uninstall | 
						|
  cd ../devLib | 
						|
  echo -n "DevLib:   " ; $sudo make uninstall | 
						|
  cd ../gpio | 
						|
  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 | 
						|
 | 
						|
  select_boards | 
						|
 | 
						|
  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 | 
						|
  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 -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 ""
 | 
						|
 |