build 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190
  1. #!/bin/sh -e
  2. # build
  3. # Simple wiringPi build and install script
  4. #
  5. # Copyright (c) 2012-2015 Gordon Henderson
  6. #################################################################################
  7. # This file is part of wiringPi:
  8. # A "wiring" library for the Raspberry Pi
  9. #
  10. # wiringPi is free software: you can redistribute it and/or modify
  11. # it under the terms of the GNU Lesser General Public License as published by
  12. # the Free Software Foundation, either version 3 of the License, or
  13. # (at your option) any later version.
  14. #
  15. # wiringPi is distributed in the hope that it will be useful,
  16. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  17. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  18. # GNU Lesser General Public License for more details.
  19. #
  20. # You should have received a copy of the GNU Lesser General Public License
  21. # along with wiringPi. If not, see <http://www.gnu.org/licenses/>.
  22. #################################################################################
  23. #
  24. # wiringPi is designed to run on a Raspberry Pi only.
  25. # However if you're clever enough to actually look at this script to
  26. # see why it's not building for you, then good luck.
  27. #
  28. # To everyone else: Stop using cheap alternatives. Support the
  29. # Raspberry Pi Foundation as they're the only ones putting money
  30. # back into education!
  31. #################################################################################
  32. check_make_ok() {
  33. if [ $? != 0 ]; then
  34. echo ""
  35. echo "Make Failed..."
  36. echo "Please check the messages and fix any problems. If you're still stuck,"
  37. echo "then please email all the output and as many details as you can to"
  38. echo " projects@drogon.net"
  39. echo ""
  40. exit 1
  41. fi
  42. }
  43. sudo=${WIRINGPI_SUDO-sudo}
  44. if [ x$1 = "xclean" ]; then
  45. cd wiringPi
  46. echo -n "wiringPi: " ; make clean
  47. cd ../devLib
  48. echo -n "DevLib: " ; make clean
  49. cd ../gpio
  50. echo -n "gpio: " ; make clean
  51. cd ../examples
  52. echo -n "Examples: " ; make clean
  53. cd Gertboard
  54. echo -n "Gertboard: " ; make clean
  55. cd ../PiFace
  56. echo -n "PiFace: " ; make clean
  57. cd ../q2w
  58. echo -n "Quick2Wire: " ; make clean
  59. cd ../PiGlow
  60. echo -n "PiGlow: " ; make clean
  61. cd ../scrollPhat
  62. echo -n "scrollPhat: " ; make clean
  63. cd ../..
  64. echo -n "Deb: " ; rm -f debian-template/wiringpi*.deb
  65. echo
  66. exit
  67. fi
  68. if [ x$1 = "xuninstall" ]; then
  69. cd wiringPi
  70. echo -n "wiringPi: " ; $sudo make uninstall
  71. cd ../devLib
  72. echo -n "DevLib: " ; $sudo make uninstall
  73. cd ../gpio
  74. echo -n "gpio: " ; $sudo make uninstall
  75. exit
  76. fi
  77. # Only if you know what you're doing!
  78. if [ x$1 = "xdebian" ]; then
  79. here=`pwd`
  80. deb_destdir=${here}/debian-template/wiringPi
  81. cd debian-template/wiringPi
  82. rm -rf usr
  83. cd $here/wiringPi
  84. make install-deb DEB_DESTDIR=${deb_destdir}
  85. cd $here/devLib
  86. make install-deb INCLUDE='-I. -I../wiringPi' DEB_DESTDIR=${deb_destdir}
  87. cd $here/gpio
  88. make install-deb INCLUDE='-I../wiringPi -I../devLib' LDFLAGS=-L../debian-template/wiringPi/usr/lib DEB_DESTDIR=${deb_destdir}
  89. cd $here/debian-template
  90. fakeroot dpkg-deb --build wiringPi
  91. mv wiringPi.deb wiringpi-`cat $here/VERSION`-1.deb
  92. exit
  93. fi
  94. if [ x$1 != "x" ]; then
  95. echo "Usage: $0 [clean | uninstall]"
  96. exit 1
  97. fi
  98. echo "wiringPi Build script"
  99. echo "====================="
  100. echo
  101. hardware=`fgrep Hardware /proc/cpuinfo | head -1 | awk '{ print $3 }'`
  102. # if [ x$hardware != "xBCM2708" ]; then
  103. # echo ""
  104. # echo " +------------------------------------------------------------+"
  105. # echo " | wiringPi is designed to run on the Raspberry Pi only. |"
  106. # echo " | This processor does not appear to be a Raspberry Pi. |"
  107. # echo " +------------------------------------------------------------+"
  108. # echo " | In the unlikely event that you think it is a Raspberry Pi, |"
  109. # echo " | then please accept my apologies and email the contents of |"
  110. # echo " | /proc/cpuinfo to projects@drogon.net. |"
  111. # echo " | - Thanks, Gordon |"
  112. # echo " +------------------------------------------------------------+"
  113. # echo ""
  114. # exit 1
  115. # fi
  116. echo
  117. echo "WiringPi Library"
  118. cd wiringPi
  119. $sudo make uninstall
  120. if [ x$1 = "xstatic" ]; then
  121. make -j5 static
  122. check_make_ok
  123. $sudo make install-static
  124. else
  125. make -j5
  126. check_make_ok
  127. $sudo make install
  128. fi
  129. check_make_ok
  130. echo
  131. echo "WiringPi Devices Library"
  132. cd ../devLib
  133. $sudo make uninstall
  134. if [ x$1 = "xstatic" ]; then
  135. make -j5 static
  136. check_make_ok
  137. $sudo make install-static
  138. else
  139. make -j5
  140. check_make_ok
  141. $sudo make install
  142. fi
  143. check_make_ok
  144. echo
  145. echo "GPIO Utility"
  146. cd ../gpio
  147. make -j5
  148. check_make_ok
  149. $sudo make install
  150. check_make_ok
  151. # echo
  152. # echo "wiringPi Daemon"
  153. # cd ../wiringPiD
  154. # make -j5
  155. # check_make_ok
  156. # $sudo make install
  157. # check_make_ok
  158. # echo
  159. # echo "Examples"
  160. # cd ../examples
  161. # make
  162. # cd ..
  163. echo
  164. echo All Done.
  165. echo ""
  166. echo "NOTE: To compile programs with wiringPi, you need to add:"
  167. echo " -lwiringPi"
  168. echo " to your compile line(s) To use the Gertboard, MaxDetect, etc."
  169. echo " code (the devLib), you need to also add:"
  170. echo " -lwiringPiDev"
  171. echo " to your compile line(s)."
  172. echo ""